【发布时间】:2013-01-26 19:21:54
【问题描述】:
我正在开发一款瓷砖 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;
}
}
}
【问题讨论】:
标签: java libgdx collision-detection