我想檢測的ImageView對象和JavaFX的一個矩形之間的碰撞之間的JavaFX衝突。下面的代碼不起作用,我不知道爲什麼。物體重疊時沒有任何反應。如果這有所作爲,圖像的原始文件是PNG。 imageview對象用箭頭移動,矩形也用TranslateTranslation移動。如何檢測長方形和ImageView的對象
public void collision(ImageView a, Rectangle b) {
if (a.getBoundsInLocal().intersects(b.getBoundsInLocal())) {
b.setY(-100);
score++;
}
}
imageview的運動代碼:
playg.setOnKeyPressed(new EventHandler<KeyEvent>(){
public void handle(KeyEvent event) {
if(event.getCode() == KeyCode.RIGHT) {
basket.setLayoutX(basket.getLayoutX() + 15);
brect.setLayoutX(basket.getLayoutX() + 15);
} else if (event.getCode() == KeyCode.LEFT) {
basket.setLayoutX(basket.getLayoutX() - 15);
brect.setLayoutX(basket.getLayoutX() - 15);
}
}
});
矩形動畫代碼:
TranslateTransition tt = new TranslateTransition(Duration.seconds(4), rect2);
tt.setByY(800f);
tt.setCycleCount(INDEFINITE);
tt.play();
我試過了,但它仍然沒有奏效 –
嗯...我改變了我的矩形之一的'ImageView',它仍然爲我工作(我甚至用一個PNG文件)。即使看看你發佈的新代碼,我也沒有太大的區別。你什麼時候在代碼中檢查碰撞? – Slaw
其實我發現這個函數只在窗口打開時調用一次。 getBoundInParent()爲此工作一次,謝謝。你知道如何讓程序不斷檢查碰撞嗎?我在start()方法中調用函數一次 –