2
所以我正在研究一個碰撞檢測代碼,我做的是當用戶矩形與他們不能移動的矩形重疊時,我阻止他們移動。所以如果我正確地移動,並且我碰到了牆,我不能前進。這工作。然而,如果在我撞上那堵牆後,我想從這個位置向下或向上移動,我會卡住。關於重疊,玩家卡住了libgdx Rectangle
這是我的檢查,如果用戶已經colidded
private void checkCollision() {
for (int x = 0; x < amount; x++) {
if (collsionRect[x].overlaps(user)) {
Gdx.app.log(ChromeGame.LOG, "Overlap");
xD = 0;
yD = 0;
}
}
}
這就是我如何將我的用戶
private void moveUser() {
// camera.translate(xD, yD);
player.translate(xD, yD);
camera.position.set(player.getX(), player.getY(), 0);
// Gdx.app.log(ChromeGame.LOG, player.getX() + "," + player.getY());
user = new Rectangle(player.getX(), player.getY(), player.getWidth(),
player.getHeight());
checkCollision();
}
在我的渲染方法,我保持通話,此舉userMove方法,直到我讓鍵盤轉到eit將xD,yD變爲零
謝謝我現在得到它,我在移動前存儲原始位置,然後檢查它是否碰撞,如果它確實然後我將它設置爲原始 – Exikle