我正在开发一款瓷砖 2d 端平台游戏。到目前为止,我已经做了一些事情。我正在使用 libgdx 的矩形进行基本的碰撞检测,所以考虑到我现在只有草块,我在 Java 中制作了一个单块世界(文件阅读器尚未准备好)问题是我的检测只在第一次工作,换句话说如果我将碰撞产生到一个块上,它会检测到碰撞并这样做。尽管如果我在没有碰撞的情况下将我的玩家生成在街区顶部,那么玩家将永远坠落。
这是代码world.update();
=>
public void update() {
Iterator<block> cb = Blocks.iterator();
while (cb.hasNext()) {
block b = cb.next();
if (b.getBounds().overlaps(player.getBounds())) {
if (player.getPosition().x >= b.getPosition().x + 32) {
//RIGHT
player.getVelocity().x = 0;
} else if (player.getPosition().x + 32 <= b.getPosition().x) {
//Left
player.getVelocity().x = 0;
}
//All Y
player.getVelocity().y = 0;
}
if (!b.getBounds().overlaps(player.getBounds())) {
player.getVelocity().y = -gravity;
}
}
}