/** * Handles the controls for playing and also the controls when in the Pause and Game over menu. */ public void handle_controls() { if (gameStatus.equalsIgnoreCase(GameConstants.GAME_STATUS_PLAYING)) { if (Gdx.input.isKeyPressed(Input.Keys.LEFT) || Gdx.input.isKeyPressed(Input.Keys.A)) { // System.out.println("Left!"); player1.moveLeft(); } if (Gdx.input.isKeyPressed(Input.Keys.RIGHT) || Gdx.input.isKeyPressed(Input.Keys.D)) { // System.out.println("Right!"); player1.moveRight(); } if (!Gdx.input.isKeyPressed(Input.Keys.RIGHT) && !Gdx.input.isKeyPressed(Input.Keys.LEFT)) { player1.stand_still(); } if (Gdx.input.isKeyPressed(Input.Keys.SPACE)) { long current_time = System.currentTimeMillis() - startTime; if (current_time >= lastShot + shotTime) { // once every second (1000millisec) lastShot = current_time; projectiles.add( new Projectile( player1.x + (player1.width / 2), player1.y + player1.height, 10, 20, imageHandler.getTexture(ImageConstants.PROJECTILE))); } } } if (Gdx.input.isKeyJustPressed(Input.Keys.P)) { if (gameStatus.equalsIgnoreCase(GameConstants.GAME_STATUS_PAUSED)) pause(false); else if (gameStatus.equalsIgnoreCase(GameConstants.GAME_STATUS_PLAYING)) pause(true); } if (gameStatus.equalsIgnoreCase(GameConstants.GAME_STATUS_PAUSED)) { String result = pauseMenu.handle_controls(); if (result != null) { if (result.equalsIgnoreCase("Continue")) { gameStatus = GameConstants.GAME_STATUS_PLAYING; long current_time = System.currentTimeMillis() - startTime; startTime = startTime + (current_time - pauseTime); } else if (result.equalsIgnoreCase("Quit")) { gameStatus = GameConstants.GAME_STATUS_RETURN; } } } if (gameStatus.equalsIgnoreCase(GameConstants.GAME_STATUS_GAME_OVER)) { String result = gameOverMenu.handle_controls(); if (result != null) { if (result.equalsIgnoreCase("Retry")) { gameStatus = GameConstants.GAME_STATUS_RETRY; } else if (result.equalsIgnoreCase("Quit")) { gameStatus = GameConstants.GAME_STATUS_RETURN; } } } }