如何获取2个对象Android的碰撞细节

时间:2014-11-25 13:24:54

标签: android bitmap android-canvas collision-detection

我正在开发一个游戏,其中我有两个对象:1>平面和2>云。 当他们发生碰撞时,我会发生一些事情。

我尝试了以下两种方法,但它们没有任何帮助: - 1)

 if((cloud.getY()==plane.getY())&&(cloud.getX()==plane.getX()))
            {
                plane.reset();
            }

和2)

if(((cloud.getY() + cloud.getBitmap().getHeight() / 2)==(plane.getY() + plane.getBitmap().getHeight() / 2))&&((cloud.getX() - cloud.getBitmap().getWidth() / 2)==(plane.getX() - plane.getBitmap().getWidth() / 2)))
        {
            plane.reset();
        }

我在单独的类中使用位图初始化了平面和云,并且getY()和getX()方法在int中返回它们的坐标。

飞机物体: -     plane = new Plane(BitmapFactory.decodeResource(getResources(),R.drawable.plane),250,700);

云对象也一样

有人请帮忙。

1 个答案:

答案 0 :(得分:2)

你必须在条件中使用范围。移动物体的速度可能不是1。     所以在这种情况下,这种情况永远不会满足。

suppose you have 2 objects then source and dest then condition will be as below:
// use below condition for x
if(source.x >=dest.x && source.x<=(dest.x+dest.width))
// use below condition for y
if(source.y >=dest.y && source.x<=(dest.y+dest.height))

This both conditions are required to check collision.