Javafx 用于碰撞检测的AnimationTimer()
我有两个长方形的游戏对象,一个玩家和一个敌人。我希望玩家在Y轴上跳跃,敌人在X轴上滑行。当玩家的X,Y位置与敌人的相匹配时,它会杀死玩家。到目前为止,我无法让AnimationTimer()检查每一帧的恒定X位置和Y位置。它只检查应用程序何时首次启动并保留这些值 如何让它检查两个矩形的X位置和Y位置的每个帧Javafx 用于碰撞检测的AnimationTimer(),javafx,collision,Javafx,Collision,我有两个长方形的游戏对象,一个玩家和一个敌人。我希望玩家在Y轴上跳跃,敌人在X轴上滑行。当玩家的X,Y位置与敌人的相匹配时,它会杀死玩家。到目前为止,我无法让AnimationTimer()检查每一帧的恒定X位置和Y位置。它只检查应用程序何时首次启动并保留这些值 如何让它检查两个矩形的X位置和Y位置的每个帧 AnimationTimer animator = new AnimationTimer() { public void handle(long arg0) {
AnimationTimer animator = new AnimationTimer() {
public void handle(long arg0) {
//update
double playX = player.getX(), enemX = enemy.getX();
double playY = player.getY(), enemY = enemy.getY();
System.out.println("Player's X: "+ playX + "\n" + "Enemy's X: " + enemX);
System.out.println("Player's Y: "+ playY);
if (playX == enemX && playY == enemY){
System.out.println("Player has Collided with Enemy");
}
}//handle
};
animator.start();//animation
尝试以下方法:
Shape intersect = Shape.intersect(player, enemy);
if(intersect.getBoundsInLocal().getWidth() != -1)
{
System.out.println("Player has Collided with Enemy");
}
什么类型的
对象是敌人?这并不完美,但你可以从@Sedrick那里得到一些想法,敌人是一个长方形,玩家也是。哇,我甚至不知道该说什么。大约从星期三起我就一直在努力让这项工作顺利进行。非常感谢。如果答案有帮助,请接受为正确答案。