0
所以我正在製作這款遊戲,玩家擁有像大多數常見遊戲一樣的x和y值,然後我添加了vely和velX。這些變量對應設置爲被按下哪個鍵:Java碰撞和按鍵
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (Game.gameActive) {
if (key == KeyEvent.VK_W) {
velY = 1;
} else if (key == KeyEvent.VK_S) {
velY = -1;
} else if (key == KeyEvent.VK_A) {
velX = 1;
} else if (key == KeyEvent.VK_D) {
velX = -1;
}
}
}
我也有周圍的玩家一個矩形,我會得到這一點以後。我也做了另一個矩形(r1),這將成爲玩家碰撞的對象。現在我用一個計算碰撞的基本方法:
if (player.getBounds().intersects(r1)) {
velX = 0;
velY = 0;
}
但由於按鍵velX在0和1/-1之間交替。我想要這樣,當玩家與r1碰撞時,玩家不能穿過它,但可以在所有其他方向上移動。我不想讓玩家彈出另一個矩形!我希望我解釋得很好,提出任何問題,並感謝所有幫助!
但是如果玩家想要向相反方向移動會怎麼樣 – user2876115
您在牆上移動並在與牆相交之前停下來。所以你可以自由地向相反的方向移動,因爲你不交叉任何東西。 – libik
那麼我如何按照上面所示的代碼方式執行此操作? – user2876115