android中两个Rect之间的碰撞检测

时间:2014-10-15 12:18:42

标签: java android collision-detection accelerometer rect

我使用canvas.drawRect(top,left,right,bottom)在画布上画了两个矩形,注意其中一个矩形是静态的,另一个是使用android加速度计移动。

  1. 现在我想检测这两个矩形之间的碰撞
  2. 我尝试了很多方法,但它们并不完美,有时两个矩形重叠,所以检测它们之间碰撞的完美方法是什么。

    这就是我的尝试 英雄是动人的三角形 迷宫组件是静态矩形

                if ((hero.top >= mazeComponent.top)
                    && (hero.top <= mazeComponent.bottom)
                    && (hero.left <= mazeComponent.right)) {
                collision = true;
            }
            if ((hero.bottom >= mazeComponent.top)
                    && (hero.bottom <= mazeComponent.bottom)
                    && (hero.right >= mazeComponent.left)) {
                collision = true;
            }
            if ((hero.left >= mazeComponent.left)
                    && (hero.left <= mazeComponent.right)
                    && (hero.top <= mazeComponent.bottom)) {
                collision = true;
            }
            if ((hero.top >= mazeComponent.top)
                    && (hero.top <= mazeComponent.bottom)
                    && (hero.left >= mazeComponent.left)) {
                collision = true;
            }
            if ((hero.left >= mazeComponent.left)
                    && (hero.left <= mazeComponent.right)
                    && (hero.top >= mazeComponent.top)) {
                collision = true;
            }
    

1 个答案:

答案 0 :(得分:1)

Java / Android Rect和Rectangle对象有intersect方法,可用于测试碰撞