如何测试一个矩形是否在另一个矩形中?

Wil*_*iam 3 c# c++ java collision-detection

好吧,所以我正在开发一款游戏,我发现我的敌人不喜欢我的碰撞检测,这对我的玩家来说非常有效.经过一些调试我发现它是因为我的敌人比我的瓷砖大,而我的玩家比我的瓷砖小.

现在我需要能够成为大敌和老板,所以这不会做.所以我需要找出一种更好的方法来测试碰撞检测.这就是我目前的做法:

上和下:

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
}
Run Code Online (Sandbox Code Playgroud)

左和右:

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
}
Run Code Online (Sandbox Code Playgroud)

tra*_*god 5

在Java中,使用intersects(Rectangle r).

  • +1,因为这是我想要的选项.如果我必须编写自己的自定义代码,无论如何我都会让我的公共界面看起来像这样. (2认同)