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); } }
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; } }
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(); }