我正在尝试用 Java 制作一个简单的游戏,但我遇到了一点碰撞问题。这是一个游戏,你有一辆自行车,从一条车道跳到另一条车道,以避免石头和收集硬币。我正在尝试使用 intersects 方法进行碰撞,并且我正在使用图像,所以我制作了与图片具有相同坐标和大小的矩形对象,并尝试使用 intersects 方法,但它永远不会返回 true。我试图将矩形绘制到屏幕上,它们正在按应有的方式移动。现在我只是通过查看坐标是否相同并且有效来检查碰撞。但是一旦我切换 if 语句并放入 intersects 方法,它们就会互相通过。因此,如果您仅查看代码发现任何问题,请回复!为你的时间感到高兴!P。S 希望代码正确显示,因为我以前从未尝试在此网站上插入代码。编辑:非常抱歉我的错误和缓慢的编辑!我很忙,因为我刚放学回家!
Rectangle heroRect;
heroRect = new Rectangle(heroX,heroY,85,90);
我对每一个物体、岩石、硬币、玩家都这样做过。它们的大小并不相同。
public void collision(){
for(Rock rock : rocks){
if(rock.rockRect.intersects(player.heroRect)){
going = false;
}
}
if(coin.getY() == player.getY() && coin.getX() == player.getX()){
score++;
try{
Thread.sleep(5);
}
catch(Exception e){}
}
}
这是检查碰撞检测的方法。第一个 if 语句使用 intersects 方法,下面的一个是我当前用于测试等的那个。我知道这与我使用 arraylist 来处理岩石这一事实无关,因为我已经尝试过使用岩石和硬币。