Esempio n. 1
0
  public void emit() {
    for (int i = 1; i <= emitNum; i++) {
      Particle x = new Particle(loc.x, loc.y, 0, null);
      if (images != null) {
        x.setImage(images[(int) randomP(images.length)]);
      } else {
        x.setImage(null);
      }
      double temp = angle2 - angle1;
      double newAngle = (((rnd.nextDouble() * temp) + angle1) * Math.PI / 180);
      if (randomV) {
        x.setVel(
            randomP(xSpeed) * FastMath.cos(newAngle), randomP(ySpeed) * FastMath.sin(newAngle), 0);
      } else {
        x.setVel(xSpeed * FastMath.cos(newAngle), ySpeed * FastMath.sin(newAngle), 0);
      }

      x.setFade(fade);
      x.setFadeRate(fadeRate);
      x.setLoc(loc.x + random(spreadX), loc.y + random(spreadY), 0);
      x.setAcc(xAcc, yAcc, 0);
      x.setMaxAge(maxAge);
      x.setMaxSize(maxSize);
      x.setSize(size);
      x.setAgeRate(ageRate);
      x.setGrowthRate(growthRate);
      x.setBlink(blink);
      x.setColor(color);
      x.setMaxSpeed(new Vector3D(maxXSpeed, maxYSpeed, 0));
      particleManager.addParticle(x);
    }
  }
Esempio n. 2
0
 private void killPlayer() {
   player.removeFromParent();
   player.getControl(PlayerControl.class).reset();
   player.setUserData("alive", false);
   player.setUserData("dieTime", System.currentTimeMillis());
   enemyNode.detachAllChildren();
   blackHoleNode.detachAllChildren();
   particleManager.playerExplosion(player.getLocalTranslation());
   if (!hud.removeLife()) {
     hud.endGame();
     gameOver = true;
   }
 }
Esempio n. 3
0
  private void handleCollisions() {
    // should the player die?
    for (int i = 0; i < enemyNode.getQuantity(); i++) {
      if ((Boolean) enemyNode.getChild(i).getUserData("active")) {
        if (checkCollision(player, enemyNode.getChild(i))) {
          killPlayer();
        }
      }
    }

    // should an enemy die?
    int i = 0;
    while (i < enemyNode.getQuantity()) {
      int j = 0;
      while (j < bulletNode.getQuantity()) {
        if (checkCollision(enemyNode.getChild(i), bulletNode.getChild(j))) {
          // add points depending on the type of enemy
          if (enemyNode.getChild(i).getName().equals("Seeker")) {
            hud.addPoints(2);
            hud.addEmp();

          } else if (enemyNode.getChild(i).getName().equals("Wanderer")) {
            hud.addPoints(1);
            hud.addEmp();
          }
          particleManager.enemyExplosion(enemyNode.getChild(i).getLocalTranslation());
          enemyNode.detachChildAt(i);
          bulletNode.detachChildAt(j);
          sound.explosion();
          break;
        }
        j++;
      }
      i++;
    }

    // is something colliding with a black hole?
    for (i = 0; i < blackHoleNode.getQuantity(); i++) {
      Spatial blackHole = blackHoleNode.getChild(i);
      if ((Boolean) blackHole.getUserData("active")) {
        // player
        if (checkCollision(player, blackHole)) {
          killPlayer();
        }

        // enemies
        int j = 0;
        while (j < enemyNode.getQuantity()) {
          if (checkCollision(enemyNode.getChild(j), blackHole)) {
            particleManager.enemyExplosion(enemyNode.getChild(j).getLocalTranslation());
            enemyNode.detachChildAt(j);
          }
          j++;
        }

        // bullets
        j = 0;
        while (j < bulletNode.getQuantity()) {
          if (checkCollision(bulletNode.getChild(j), blackHole)) {
            bulletNode.detachChildAt(j);
            blackHole.getControl(BlackHoleControl.class).wasShot();
            particleManager.blackHoleExplosion(blackHole.getLocalTranslation());
            if (blackHole.getControl(BlackHoleControl.class).isDead()) {
              blackHoleNode.detachChild(blackHole);
              sound.explosion();
            }
          }
          j++;
        }
      }
    }
  }
 public void loop(final float theDeltaTime) {
   _myParticleManager.loop();
 }