我试图使用androind rect类实现一个rect collision if语句,但我似乎无法使它工作,它确实有效,但return语句永远不会成立,这里是我的if语句
if(Rect.intersects(balls.get(j).topSide, levelBlocks.blocks.get(i).rect))
{
Log.d("Check", "Hit");
}
以下是我打印的信息,表明应该发生碰撞
06-09 18:17:50.842: D/Check(6016): Bloc1X:192, Y:64, W:32, H:32
06-09 18:17:50.862: D/Check(6016): Ball X:199, Y:92, W:18, H:6
这是一张带有指向位置的图片,图片分辨率与应用程序画布
相同如果有人可以帮助我,那就太棒了:)。
这是一些更多的代码
if(i == 2)
{
Log.d("Check", "Ball X:"+ balls.get(j).topSide.left+",Y:"+ balls.get(j).topSide.top+", W:"+ balls.get(j).topSide.right+", H:"+balls.get(j).topSide.bottom);
Log.d("Check", "Bloc1X:"+ levelBlocks.blocks.get(i).rect.left+", Y:"+ levelBlocks.blocks.get(i).rect.top+", W:"+ levelBlocks.blocks.get(i).rect.right+", H:"+levelBlocks.blocks.get(i).rect.bottom);
}
if(Rect.intersects(balls.get(j).topSide, levelBlocks.blocks.get(i).rect))
{
Log.d("Check", "hit");
}
答案 0 :(得分:0)
我不确定你所拥有的代码是什么,例如“.topSide”。
但是如果你看看矩形的文档,你可以将两个矩形传递给insersects()方法,它将返回true或false:
http://developer.android.com/reference/android/graphics/Rect.html#intersects(android.graphics.Rect,android.graphics.Rect)
我当然假设你的两个实体都是Rect类型。如果没有那么这不会起作用。