0
我目前使用的收集檢測方法可以解釋碰撞,但會根據方向產生奇怪的效果。它會:Slick2D碰撞檢測 - 奇怪的運動
- 如果玩家擊中對象的右側,總是可以工作。
- 如果玩家擊中物體的頂部或底部,將玩家推到一邊。
- 如果玩家第一次擊中物體的左側,但會在下一次在左側檢測到碰撞時將玩家傳送到物體的另一側。
這是當前碰撞檢測代碼:
if(player.playerBounds.intersects(portal.bounds)&&player.isMovingLeft){
player.playerX=(portal.x+portal.width);
player.playerX++;
}
else if(player.playerBounds.intersects(portal.bounds)&&player.isMovingRight){
player.playerX=(portal.x-player.width);
player.playerX--;
}
else if(player.playerBounds.intersects(portal.bounds)&&player.isMovingUp){
player.playerY=(portal.y+portal.height);
player.playerY--;
}
else if(player.playerBounds.intersects(portal.bounds)&&player.isMovingDown){
player.playerY=(portal.y+player.height);
player.playerY++;
}
它運行,但它最終具有與原始代碼相同的效果。 – oracleCreeper 2013-03-19 00:40:47