我正在开发一个游戏,其中我有两个对象: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);
云对象也一样
有人请帮忙。
答案 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.