2017-04-19 2 views
0

Ich versuche zu testen und sehen, ob meine Kugel den Feind trifft und wenn es krank ist, entfernen Sie es aus der Scheibe und aus der Kugel Liste. Ich weiß jedoch nicht, wie ich nach der Position des Geschosses suchen soll, während es sich in der Mitte seiner Animation befindet. Wie mache ich das? Vielen Dank!Wie bekomme ich einen Objektstandort in der Mitte seines Übergangs?

case S: 
       Circle bullet = new Circle(5); 
       bullet.setLayoutX(guns.getGun1().getLayoutX() + guns.getGun1().getWidth()); 
       bullet.setLayoutY(guns.getGun1().getLayoutY()); 
       bullets.add(bullet); 
       stage1Pane.getChildren().add(bullet); 
       TranslateTransition bulletMovement = new TranslateTransition(Duration.seconds(3),bullet); 
       bulletMovement.fromXProperty().bind(guns.getGun1().translateXProperty()); 
       bulletMovement.fromYProperty().bind(guns.getGun1().translateYProperty()); 
       bulletMovement.toXProperty().bind(guns.getGun1().translateXProperty().add(1000)); 
       bulletMovement.toYProperty().bind(guns.getGun1().translateYProperty()); 
       bulletMovement.play(); 

        if (bullet.getCenterX() == enemy.getEnemyBody().getLayoutX()) 
        { 
         bulletMovement.stop(); 
         enemy.getEnemyLegs().setLayoutX(300); 
        } 

       bulletMovement.setOnFinished(i->{ 
        System.out.println(bullet.getCenterX() + " " + enemy.getEnemyBody().getLayoutX()); 
        bullets.remove(bullet); 
        stage1Pane.getChildren().remove(bullet); 
       }); 
       break; 

Antwort

0

Sie können nur einen Zuhörer auf seine boundsInParent Eigenschaft hinzuzufügen. Der Hörer wird jedes Mal die Grenzen Änderung aufgerufen werden, dh jedes Mal bewegt:

bullet.boundsInParentProperty().addListener((obs, oldBounds, newBounds) -> { 
    double centerX = newBounds.getMinX() + newBounds.getWidth() /2 ; 
    // ... etc 
}); 

Beachten Sie, dass die TranslateTransition Werke die translateX und translateY Eigenschaften des Knotens zu ändern: so den Kreis centerX und centerY Eigenschaften wird sich nicht ändern während der Animation.

Verwandte Themen