我真的不喜欢在Libgdx中使用box2d,因此我从Tiled设置了一个地图,为图层中的每个单元都有一个矩形。我设置了一个播放器,如果未触摸矩形之一,该播放器应掉落,但它会缓慢落入地图。
for(int i = 0; i < g.getBounds().size; i++) {
Intersector.intersectRectangles(bounds, g.getBounds().get(i), intersection);
if((bounds.overlaps(g.getBounds().get(i))) && intersection.y > g.getBounds().get(i).y) {
vel.y = 0;
if (MyInput.isPressed(MyInput.SPACE)) {
vel.y = 5;
}
} else {
vel.y-=.0005f;
}
}
for循环遍历所有矩形以检查播放器是否触碰顶部。
最佳答案
boolean collides=false;
for(int i = 0; i < g.getBounds().size; i++) {
Intersector.intersectRectangles(bounds, g.getBounds().get(i), intersection);
if((bounds.overlaps(g.getBounds().get(i))) && intersection.y > g.getBounds().get(i).y) {
collides=true;
}
}
if(collides){
vel.y = 0;
if (MyInput.isPressed(MyInput.SPACE)) {
vel.y = 5;
}
}else{
vel.y-=.0005f;
}
您的代码有什么问题的解释在用户789805答案上