* @param dt
* @throws SlickException
*/
private void checkCollisions(float dt) {
Bullet bullet = null;
Enemy enemy = null;
Powerup powerup = null;
List<Bullet> bullets = ship.getBullets();
// Comprueba si los proyectiles del personaje han alcanzado a algún enemigo
for (int i = enemies.size - 1; i >= 0; i--) {
enemy = enemies.get(i);
for (int j = bullets.size() - 1; j >= 0; j--) {
bullet = bullets.get(j);
if (bullet.getRect().overlaps(enemy.getRect())) {
// Si el enemigo no es meteorito ni bala enemiga se explosiona y se elimina
if ((!enemy.getClass().getSimpleName().equals("Stone")) && (!enemy.getClass().getSimpleName().equals("ShooterBullet"))) {
enemy.hit();
if (enemy.getLives() == 0) {
ship.addScore(enemy.getValue());
Explosion explosion = new Explosion(enemy.getX() - Constants.ENEMY_WIDTH, enemy.getY());
explosions.add(explosion);
enemies.removeIndex(i);
if (game.configurationManager.isSoundEnabled())
ResourceManager.getSound("explosion").play();
}
}
// Si se dispara contra la bala de un enemigo, el proyectil no desaparece
// Si se dispara un misil, éste tampoco desaparece hasta que no llega al final de la pantalla,
// aunque haya acertado a algún enemigo
if ((!enemy.getClass().getSimpleName().equals("ShooterBullet")) &&
(!bullet.getClass().getSimpleName().equals("Missile")))
bullets.remove(j);
}
}
}