6

我创建了一个游戏,您可以在其中移动一个矩形并躲避其他从天空落下的矩形。尽管每次矩形相交时都没有任何反应。

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....... 
4

1 回答 1

5

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

像这样的东西:

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

此外,还有许多其他(更好的)方法可以做到这一点,尤其是在处理不是矩形的对象以及屏幕上有很多对象时。查看这篇文章以获得很好的讨论

此外,“Beginning Android Games”一书有一个关于碰撞检测的精彩章节,如果您正在考虑编写游戏,这本书非常值得一读。

于 2012-02-29T02:47:07.617 回答