我这里有两个数组列表,其中包含火箭和射弹:
public static ArrayList<Projectile> projectiles = new ArrayList<Projectile>();
private static ArrayList<Rocket> rockets = new ArrayList<Rocket>();
不时地,一个射弹和一个火箭被添加到适当的数组列表中:
rockets.add(new NormalRocket(x, -10, 70, 0, 2); // the constructor is (int x, int y, int speed, int dir, int health) but only x and y are relevant.
Rocket 和 Projectile 类都有以下方法:
public Rectangle bounds() {
return new Rectangle(x, y, width, height);
}
并且 NormalRocket 和 MachineGunProjectile 等子类也有它:
public Rectangle bounds() {
return super.bounds();
}
现在,我有一个方法可以检查火箭和射弹之间的碰撞,如下所示:
private void collision(){
for(int i = 0; i < rockets.size(); i++){
for(int j = 0; j < projectiles.size(); j++){
if(rockets.get(i).bounds().intersects(projectiles.get(j).bounds())){
System.out.println("HIT!");
}
}
}
}
但当它们相交时,似乎什么也没有发生。有人知道发生了什么还是需要更多代码来调试?