@Override protected void update() { // update world, run managers checkControl(); switch (state) { case PLAYING: UpdateManager.update(); CollisionManager.update(); break; default: break; } // System.out.println(mouse.getWorldX() + " " + mouse.getWorldY()); // playing, control hero if (state == State.PLAYING) { if (menuActive) { world.menu.active(false); menuActive = false; } hero.moveTo(mouse.getWorldX(), mouse.getWorldY()); if ((keyboard.isButtonDown(KeyEvent.VK_F)) || (mouse.isButtonDown(1))) { hero.currentWeapon.fire(); } } // deactive menu if BEGIN state else if (state == State.BEGIN) { if (menuActive) { world.menu.active(false); menuActive = false; } if (endMenuActive) { world.endMenu.active(false); endMenuActive = false; } if (!world.start.isShown()) { world.start.showScreen(true); } } else if (state == State.PAUSED) { if (menuActive) { world.menu.active(false); menuActive = false; } } // state menu, activate menu else if (state == State.MENU) { if (!menuActive) { world.menu.active(true); menuActive = true; } else { if (mouse.isButtonTapped(1)) { world.menu.select(mouse.getWorldX(), mouse.getWorldY(), true); } else { world.menu.select(mouse.getWorldX(), mouse.getWorldY(), false); } } } // state GAMEOVER, activate end menu else if (state == State.GAMEOVER) { if (menuActive) { world.menu.active(false); menuActive = false; } if (!endMenuActive) { if (GameState.RemainingLives <= 0) { world.endMenu.setMenu(false); } else { world.endMenu.setMenu(true); } world.endMenu.active(true); endMenuActive = true; } else { if (mouse.isButtonTapped(1)) { world.endMenu.select(mouse.getWorldX(), mouse.getWorldY(), true); } else { world.endMenu.select(mouse.getWorldX(), mouse.getWorldY(), false); } } } }