【发布时间】:2013-03-22 10:17:35
【问题描述】:
我目前使用的集合检测方法可以解释碰撞,但会根据方向产生奇怪的效果。它将:
- 如果玩家击中对象的右侧,则始终工作。
- 如果玩家击中对象的顶部或底部,请将其推到一边。
- 如果玩家撞到对象的左侧,则第一次工作,但下次检测到左侧发生碰撞时会将玩家传送到对象的另一侧。
这是当前的碰撞检测代码:
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++;
}
【问题讨论】:
标签: java collision-detection slick2d