在Android游戏中为边界定义圆形区域

时间:2011-01-19 09:36:11

标签: android graphics 2d collision-detection

我想用小行星制作一个简单的月球着陆器。我已经得到了小行星,但是我很难理解如何让他们定义区域,如果我的船只穿过导致玩家输了。关于定义圆形像素区域的任何提示?如果它有帮助,我知道我的小行星的确切坐标。

感谢您的建议。

(寻找碰撞检测建议)

编辑:我的个人解决方案,稍微冗长但没有比下面的解决方案更有帮助:)

public boolean collisionDetection(double xa, double ya, double ra, double xb, double yb, double rb) {

        double distance = Math.sqrt(Math.pow(xa-xb, 2) + Math.pow(ya-yb, 2)); 

        if (distance < ra+rb)
            return true;
        else 
            return false;
    }

1 个答案:

答案 0 :(得分:1)

这假设你知道小行星和船只的合作和大小:

float x = Asteroid.X - Ship.X;    
float y = Asteroid.Y - Ship.Y;
float radius = Asteroid.Radius - Ship.Radius;

x *= x;
y *= y;
radius *= radius;

if((x+y) < radius) 
{
   //collision 
}
编辑:我的功能很抱歉,请使用此功能

感谢LarsH