好的,所以我正在制作一款游戏,并且我发现我的敌人不喜欢我的碰撞检测功能,这对我的玩家来说非常合适。经过一些调试,我发现这是因为我的敌人比我的瓷砖大,而我的玩家比我的瓷砖小。如何测试一个矩形是否在另一个矩形中?
现在我需要能够做出大敌和老板,所以这是不行的。所以我需要找出更好的方法来测试碰撞检测。这是我当前如何做它:
上下:
if((enemy.left > tile.left && enemy.left < tile.right || enemy.right > tile.left && enemy.right < tile.right) && enemy.top < tile.bottom && enemy.bottom > tile.top){
//collision
}
左右:
if((enemy.top > tile.top && enemy.top < tile.bottom || enemy.bottom > tile.top && enemy.bottom < tile.bottom) && enemy.left < tile.right && enemy.right > tile.left){
//colision
}
你的精灵是纯粹的矩形吗? – xandy 2010-11-08 01:27:26
它是52x32,拼图是50x50 – William 2010-11-08 01:28:56
我的意思是,对于大多数游戏来说,精灵的碰撞检测不是简单地检测重叠的矩形,例如,如果你的敌人和你的化身都是圆形的,即使矩形重叠也不会基本崩溃。 – xandy 2010-11-08 01:39:18