我目前正在为一个学校项目制作一个小游戏,但我遇到了碰撞检测问题。
这是我的时间轴和跳转按钮代码:
Timeline timeline = new Timeline(new KeyFrame(Duration.ZERO,
new KeyValue(player.translateYProperty(), ty,
interpolator)),
new KeyFrame(Duration.seconds(.5),
new KeyValue(player.translateYProperty(), ty-40,
interpolator)));
Timeline eTimeline = new Timeline(new KeyFrame(Duration.ZERO,
new KeyValue(enemy.translateXProperty(), ex,
interpolator2)),
new KeyFrame(Duration.seconds(3),
new KeyValue(enemy.translateXProperty(), ex-40,
interpolator2)));
JumpBtn.setOnAction(new EventHandler<ActionEvent>()
{
public void handle(ActionEvent e) {
timeline.setCycleCount(2);
timeline.setAutoReverse(true);
JumpBtn.setDisable(true);
setScore();
timeline.setOnFinished(evt -> JumpBtn.setDisable(false));
timeline.play();
}
});
这是我对碰撞检测的尝试:
double playX = player.getX();
double enemX = enemy.getX();
double playY = player.getY();
double enemY = enemy.getY();
boolean collisionX = false;
boolean collisionY = false;
if (playX == 450 && enemX == 450){
collisionX = true;
System.out.println("Collision X Detected");
}
if (enemY == 480 && playY == 420){
collisionY = true;
System.out.println("Collision Y Detected");
}
while (death = false){
if (collisionX = true){
if(collisionY = true){
death = true;
System.out.println("Player is dead");
}
}
}
我只能假设这不起作用,因为它不是经常寻找X和Y位置,但我不知道该怎么做。
答案 0 :(得分:0)
我不确定JavaFX是否有
Access-Control-Allow-Origin: {value-of-Origin-request-header}
方法,但如果确实如此,则应使用它来检测两种不同形状之间的碰撞。 请记住,如果构成形状/多边形的一个点至少接触到另一个形状/多边形,则两个形状/多边形会发生碰撞。
[==这包含在括号中,因此其碰撞==]