public void draw( final Ship ship, final StarManager starManager, final EnemyManager enemyManager, final PowerUpManager powerupManager, final ShotManager shotManager, final GamePhase phase, final GameController controller) { if (phase == GamePhase.GAMING) { shotManager.drawShape(shapeRenderer, ppux, ppuy, border); powerupManager.drawShape(shapeRenderer, ppux, ppuy, border); shapeRenderer.begin(ShapeType.FilledRectangle); enemyManager.drawHealthBar(shapeRenderer, ppux, ppuy, border); shapeRenderer.end(); } shapeRenderer.setColor(Color.WHITE); starManager.drawShape(shapeRenderer, ppux, ppuy, border); ship.drawShape(shapeRenderer, ppux, ppuy, border); batch.begin(); ship.drawSprite(batch, ppux, ppuy, border); switch (phase) { case LEVEL_LOAD: // just waiting for refresh case GAMING: shotManager.drawSprite(batch, ppux, ppuy, border); powerupManager.drawSprite(batch, ppux, ppuy, border); enemyManager.drawSprite(batch, ppux, ppuy, border); break; case PAUSE: drawPauseTextBox(); break; case LEVEL_SCORE: // TODO make counter and stuff and at the end change phase // score = GameScreen.updatePhase(GamePhase.LEVEL_WAIT); case LEVEL_WAIT: drawLevelScore(controller, controller.getTimeBonus()); break; case DEAD: // TODO death animation drawGameOver(); break; case FINISHED: drawGameFinished(); break; case GAMESTART: break; default: break; } batch.end(); }