public static bool CollideWithBullet(BulletPlayer bulletPlayer) { for (int i = 0; i < aliens.Length; i++) { if (aliens[i].IsAlive) { //Vector2 dist = aliens[i].Position.Sub(bullet.Position); //if (dist.GetLength() <= aliens[i].GetWidth()/2 + bullet.GetWidth()/2) if (bulletPlayer.Collides(aliens[i].Position, aliens[i].GetWidth() / 2)) { //alien dies if (aliens[i].OnHit()) { Game.AddScore(5); IncAliensSpeed(1.05f); //he's dead if (aliens[i].CanShoot) { int prevAlienIndex = i - aliensPerRow; while (prevAlienIndex >= 0) { if (aliens[prevAlienIndex].IsAlive) { aliens[prevAlienIndex].CanShoot = true; break; } prevAlienIndex -= aliensPerRow; } } numAlives--; } return(true); } } } return(false); }