如何使用Rect.intersect方法。

时间:2012-02-29 00:58:40

标签: android canvas intersect

我创造了一个游戏,你可以移动一个矩形并从天空中躲避其他下降的矩形。虽然每次矩形相交都不会发生任何事情。

if(mSquare.intersect(jSquare)){ canvas.drawColor(Color.BLACK);

collision = mSquare.intersect(jSquare);
     if(collision==true){  canvas.drawColor(Color.RED);
  }  this always returns false no matter where the rectangles are....... 

1 个答案:

答案 0 :(得分:4)

有很多方法可以做到这一点,最简单的方法是为每个Rect获取边界Bitmap,并在每个时间步骤使用Rect.intersect()方法检查碰撞

这样的事情:

boolean collision = player.getRect().intersect(fallingObject.getRect());

此外,还有许多其他(更好)方法可以做到这一点,尤其是在处理不是矩形的对象以及屏幕上有很多对象时。查看this post for a good discussion

另外,“开始Android游戏”这本书有一个很好的关于碰撞检测的章节,如果你正在考虑写游戏,这本书非常值得一读。