Android碰撞检测

Android碰撞检测,android,collision-detection,rect,Android,Collision Detection,Rect,说明: 我有一个项目现在快完成了,但我注意到碰撞并没有真正起作用。这是一款蛇形游戏,可以通过触摸屏进行控制,因此可以使用锐利的(?,对不起,德国人)角度。现在我只留下一点公差(忽略前两个精灵)来启用一点转向。主要问题是精灵正在旋转,这会导致超尺寸碰撞框。我没有使用任何游戏引擎或OpenGL 冲突代码: offsetX&offsetY是位图的宽度或高度/2,在蛇的头部被称为。蛇(鸟)中的每个链接都是可放置的 public boolean doesHit(Placeable p) { int

说明:

我有一个项目现在快完成了,但我注意到碰撞并没有真正起作用。这是一款蛇形游戏,可以通过触摸屏进行控制,因此可以使用锐利的(?,对不起,德国人)角度。现在我只留下一点公差(忽略前两个精灵)来启用一点转向。主要问题是精灵正在旋转,这会导致超尺寸碰撞框。我没有使用任何游戏引擎或OpenGL

冲突代码: offsetX&offsetY是位图的宽度或高度/2,在蛇的头部被称为。蛇(鸟)中的每个链接都是可放置的

public boolean doesHit(Placeable p) {
    int xLen = Math.abs(this.x - p.x);
    int yLen = Math.abs(this.y - p.y);
    if (bmp != null) {
        if (xLen < offsetX + p.offsetX && yLen < offsetY + p.offsetY)
            return true;
    } else {
        if (xLen < Bird.BIG_W[Bird.mUseBird] / 2
                && yLen < Bird.BIG_H[Bird.mUseBird] / 2)
            return true;
    }
    return false;
}
public boolean doesHit(可放置的p){
int xLen=Math.abs(this.x-p.x);
int-yLen=Math.abs(this.y-p.y);
如果(bmp!=null){
if(xLen
TL;博士/问题:


有没有办法旋转矩形然后比较它们(首选,因为游戏已经结束了)?或者最简单的方法是移植到OpenGL/a游戏引擎吗?

最好的选择是使用OpenGL并使用带相交的旋转多边形


<> P>但是,对于快速HACK,我将改变DoSHIT()例程,将精灵视为圆而不是矩形。这样,它们在旋转时不会超出边界。代价是角落里的碰撞检测会很糟糕。

这是有道理的。但是我想不出一个实现它的方法。你会怎么做?试试看