我正在尝试用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 for the rocks的事实无关,因为我已经尝试过两个岩石和硬币。