private void addDish() { foodTimerDiff = (System.nanoTime() - foodTimer) / 1000000; if (foodTimerDiff > foodDelay) { // there will be a 88% chance the next dish will be food double chance = Math.random(); int rail = (int) Math.round(Math.random() * 2); if (chance < foodprobability) { String food = foodList.get((int) (Math.random() * foodList.size()) % foodList.size()); Food f = new Food(food, rail, foodValues.get(food)); f.setPositionInRail(player.getx() + GamePanel.WIDTH + f.getWidth() / 2, rail); f.setCamera(camera); dishes.add(f); } else { String power = powerList.get((int) (Math.random() * powerList.size()) % powerList.size()); Power p = new Power(power, rail); p.setPositionInRail(player.getx() + GamePanel.WIDTH + p.getWidth() / 2, rail); p.setCamera(camera); dishes.add(p); } foodTimer = System.nanoTime(); if (difficulty == OptionsState.EASY) foodDelay = (long) (Math.random() * fooddelays[0]) + fooddelays[1]; if (difficulty == OptionsState.NORMAL) foodDelay = (long) (Math.random() * fooddelays[2]) + fooddelays[3]; if (difficulty == OptionsState.HARD) foodDelay = (long) (Math.random() * fooddelays[4]) + fooddelays[5]; } }
public void update() { // keyboard input input(); // check the events flags eventClear = player.clearedLevel(); eventDead = player.isDead(); eventCaught = player.isCaught(); if (eventIntro) { // title update player.setPlaying(false); if (titleIntroA != null) { titleIntroA.update(); if (titleIntroA.shouldRemove()) { titleIntroA = null; titleIntroB.start(); } } if (titleIntroB != null) { titleIntroB.update(); if (titleIntroB.shouldRemove()) { titleIntroB = null; eventIntro = false; player.setPlaying(true); } } } if (eventClear || eventDead || eventCaught) player.stop(); if (eventClear) { if (!playFlag) { AudioPlayer.stop(musicFnm); AudioPlayer.playAndLoop("levelclear"); playFlag = true; } PlayerData.setScore(player.getScore()); PlayerData.addEatenDishes(player.getEatenDishes()); if (showResults) showResults(); if (!titleClear.hasStarted()) titleClear.start(); } if (eventCaught) { if (!playFlag) { AudioPlayer.stop(musicFnm); AudioPlayer.play("levelfailcaught"); playFlag = true; } if (!titleCaught.hasStarted()) titleCaught.start(); if (titleCaught.shouldRemove()) titleCaught = null; } if (eventDead) { if (!playFlag) { AudioPlayer.stop(musicFnm); AudioPlayer.play("levelfaildead"); playFlag = true; } if (!titleDead.hasStarted()) titleDead.start(); if (titleDead.shouldRemove()) titleDead = null; } camera.setPosition(playerxscreen - player.getx(), 0); player.update(); /* bgSky.setPosition(camera.getx() * 0.6, camera.gety() + bgSky.gety()); bgSoil.setPosition(camera.getx(), camera.gety() + bgSoil.gety()); bgSky.update(); bgSoil.update(); */ bgKitchen.setPosition(camera.getx(), camera.gety()); bgKitchen.update(); for (int i = 0; i < numbers.size(); i++) { numbers.get(i).update(); if (numbers.get(i).isOver()) { numbers.remove(i); i--; } } for (int i = 0; i < explosions.size(); i++) { SpriteAnimation explosion = explosions.get(i); explosion.update(); if (explosion.hasPlayedOnce()) { explosions.remove(i); i--; } } for (int i = 0; i < powerup.size(); i++) { SpriteAnimation pup = powerup.get(i); pup.update(); if (pup.hasPlayedOnce()) { powerup.remove(i); i--; } } // collisionDetection(); for (int i = 0; i < dishes.size(); i++) { // dishes.get(i).setPosition(400 - player.getx(), dishes.get(i).gety()); dishes.get(i).update(); if (dishes.get(i).shouldRemove()) { dishes.remove(i); i--; } } hud.update(); npc.update(); if (player.getCholesterol() >= 85) { heartAttack.update(); if (heartAttack.shouldPlaySound()) if (player.isPlaying()) AudioPlayer.play("heartbeat"); } if (player.getCholesterol() <= 25) { warning.update(); if (warning.shouldPlaySound()) if (player.isPlaying()) AudioPlayer.play("redalert"); } levelIntroTimerDiff = (System.nanoTime() - levelIntroTimer) / 1000000; if (levelIntroTimerDiff > levelIntroDelay) levelStart = true; if (eventIntro || eventClear || eventDead || eventCaught) return; addDish(); }