我有一个带有子弹和怪物的游戏,其中我需要在使用矩形碰撞时释放子弹和怪物但是当发生碰撞时,该方法不会返回 true
这就是我所做的:我为每个子弹/怪物设置了界限
bounds.left = (int)X;
bounds.top = (int)Y ;
bounds.right = (int)X + monsterWidth;
bounds.bottom = (int)Y + monsterHeight;
然后做了一个布尔方法
return bounds.intersect((int)X,(int) Y ,(int) X + monsterWidth, (int) Y + monsterHeight);
我对两者都有这个界限,然后我在游戏线程上调用它们
int i=0, j=0;
while (!monster.isEmpty() && monster.size()>i){
j=0;
while (!bullets.isEmpty() && bullets.size()>j){
if(monster.get(i).isColliding(bullets.get(j).getBounds())){
Log.v("collided", "Collided!");
monster.get(i).setRelease(true);
bullets.get(j).setRelease(true);
}
j++;
}
i++;
}
我在每个边界上都有日志,它们都是正确的 left<=right top<=bottom 但是在 iscolliding 方法中没有日志。我已经尝试过 instersects(left,top,right,bottom) 但还是一样。