我很困惑。在我做任何事情之前,代码如下:
if(inAir&&!falling&&!jumping){
if(py<600){
if (!(isBlocked(xminusd, py) || isBlocked(xminus, py + 32 - 1))) {
falling=true;
}else{
py-=2;
inAir=false;
}
}
}
for(int g = 0;g<Map.r.size();g++){
if(rect.intersects(Map.r.get(g))||Map.r.get(g).contains(rect)||rect.contains(Map.r.get(g))||Map.r.get(g).intersects(rect)){
System.out.println("Intersecting!");
inAir= false;
hasjumped=false;
onPlat = true;
falling = false;
jumping = false;
py-=4;
break;
}else{
onPlat = false;
if(inAir==false&&!onPlat){
inAir = true;
onPlat = false;
}
}
}
现在的问题是,我正在尝试通过为每个图块创建矩形来对某种类型的图块进行碰撞检测,如果玩家与它发生碰撞,它会停止所有运动。(至少明智地下降)。但我遇到了一个问题。我使用了一个数组列表来创建我所有的矩形,并且我正在使用 for 循环来检查每个矩形。问题是,如果它检查一个矩形并且我当前没有与该矩形碰撞,它会立即开始下降,然后重置,因为它找到了我正在碰撞的矩形。问题是我使用for循环循环遍历每个矩形......我真的很困惑如何使用平台图块进行碰撞检测。有人可以提供帮助吗?请描述性。