我目前正在为一个学校项目制作一个小游戏,冲突检测有问题。
这是我的时间线和跳转按钮代码:
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位置,但我不确定如何做到这一点。
我不确定JavaFX是否有
contains(Point point)
方法,但是如果这样,您应该使用它来检测两个不同形状之间的冲突。请记住,如果至少组成形状/多边形的其中一个点与另一个形状/多边形接触或在另一个形状/多边形内部,则两个形状/多边形发生碰撞。
[==这包含在括号中,因此其冲突==]
问题内容: 如何检测两个元素是否发生冲突? 这两个div是简单的彩色框,彼此垂直,因此没有复杂的形状或角度。 问题答案: 一般思路-获得框的偏移量和尺寸,并检查它们是否重叠。 如果要更新,可以使用: 另外,请注意,您可以针对特定示例优化功能。 因为它们是固定的,所以您不必重复读取框的尺寸(就像我在代码中一样)。您可以在页面加载时读取它们(将其读取到变量中),然后仅读取变量 小盒子的水平位置不会改变
我正在尝试为我的大学工作制作一个基于2D平台的游戏(在SFML)。我不是要求任何人为我编写一些代码,但如果有人能提供一些指示,我将非常感激:) 目前我有大约13门课,包括: BaseEntity(大多数游戏对象都是由此派生的) 玩家(继承自BE) 魔法宝石(玩家需要这些来通过关卡晋级) 平台 SolidBlock(从平台继承) 可以说,我已经构建了大部分的游戏“积木”--每个类都有自己的更新函数,
我使用下面的类制作了一个项目符号列表和一个精灵列表。如何检测子弹是否与子画面发生碰撞,然后删除该精灵和子弹?
我写了下面的JavaFX程序,其中两个矩形节点正在转换转换: 如何对“平移转换”中的两个矩形节点实施冲突检测?
我正在尝试检查StackPane中节点的冲突检测。下面是我的代码: 在这里,如果我使用AnchorPane,碰撞检测就会工作。但在StackPane的情况下,我无法做到这一点。我猜这是因为堆栈窗格的坐标系统(如果我错了,请纠正我)。 所以请帮我实现上述两个矩形的碰撞检测。另外,如果我想更改节点的坐标,请提供一些建议(如果您知道),以便在StackPane内的节点上实现此类冲突检测。
我正在尝试制作一个砖块游戏,在碰撞检测方面遇到了一些问题。如果你曾经玩过撞砖游戏,你知道在划桨时,如果球向左移动,而你击中了顶部的左侧,那么它会继续向右移动。不过,在这种情况下,如果你从右侧击球,那么球就会改变方向。而且如果你在桨的侧面撞击它,它会在Y轴上反弹。由于我不知道如何完成桨叶的顶部,我无法向您展示代码,因为我没有任何代码:)这是我用于侧面的代码: 发生的是,当球从侧面被击中时,它正好穿过