私はタイルの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;
}
}
}