Exemple #1
0
  public void updateHitDetections() {
    // Checking if any bullet hit an enemy
    for (Bullet b : bullets) {
      for (Enemy e : enemies) {
        if (e.hasSpawned() && e.getLife() > 0) {
          // Custom hitdetection for the worm
          // It just uses the parts as they were enemies
          if (e instanceof EnemyWorm) {
            for (EnemyWorm.Part p : ((EnemyWorm) e).getParts()) {
              if ((b.getX() - p.getX()) * (b.getX() - p.getX())
                      + (b.getY() - p.getY()) * (b.getY() - p.getY())
                  < p.getOuterRadius() * p.getOuterRadius() + b.getWidth() * b.getWidth() * 4) {
                p.hit(Bullet.damage);
                b.hit();

                // Adding a small camerashake
                Camera.shake(0.1f, 0.05f);

                // Rewarding player depending on game mode
                enemyHit(e);
                break;
              }
            }
          } else if ((b.getX() - e.getX()) * (b.getX() - e.getX())
                  + (b.getY() - e.getY()) * (b.getY() - e.getY())
              < e.getOuterRadius() * e.getOuterRadius() + b.getWidth() * b.getWidth() * 4) {

            e.hit(Bullet.damage);
            b.hit();

            // Rewarding player depending on game mode
            enemyHit(e);
            break;
          }
        }
      }
    }
  }