我真的不喜欢将 box2d 与 Libgdx 一起使用,因此我从 Tiled 设置了一个 map ,为图层中的每个单元格设置一个矩形。我设置了一个玩家,如果它没有接触其中一个矩形,它就会掉落,但它会慢慢地穿过 map 掉落。
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 循环遍历所有矩形以检查玩家是否触摸到顶部。
最佳答案
看起来您正在循环遍历所有矩形(?)并且 vel.y 值被后面矩形的状态覆盖。
例如,您还可以使用 boolean 值来指示您位于表面上,并在循环后设置 vel.y。
关于java - Libgdx 实体重力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25111861/