弾丸とモンスターが長方形を使用して衝突したときに弾丸とモンスターを解放する必要があるゲームがありますが、衝突が発生したときにメソッドが 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 メソッドにはログがありません。私は交差(左、上、右、下)を試しましたが、それでも同じです。