@Override /** Mis à jour à chaque frame */ public void update(GameContainer container, int delta) throws SlickException { particleEngine.update(); // Un peu de fun if (gameEngine.getStatus() != GameStatus.STARTED) if (Math.random() < 0.04) particleEngine.pushBlocks(); // On gère le fenêtrage if (input.isKeyDown(Input.KEY_F)) { fullscreen = !fullscreen; ((AppGameContainer) container).setDisplayMode(800, 600, fullscreen); } if (input.isKeyDown(Input.KEY_ESCAPE)) { container.exit(); } // On économise un peu de CPU ;) try { Thread.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); } }
@Override /** Rendu de chaque frame */ public void render(GameContainer container, Graphics g) throws SlickException { // Tout ce qui est propre au rendu graphique se trouvera ici graphicLayer.drawGame(); particleEngine.draw(); if (gameEngine.getStatus() != GameStatus.STARTED) graphicLayer.drawPauseLayout(); if (gameEngine.getStatus() == GameStatus.ENDED) { graphicLayer.drawEndGame(); } if (gameEngine.getStatus() == GameStatus.MENU) { graphicLayer.drawMenu(); } }
@Override public void init(GameContainer container) throws SlickException { // On récupère l'input input = container.getInput(); // On charge les ressources du jeu graphicLayer = new GraphicLayer(); // En récupérant l'instance on construit l'objet (et donc on charge les sons) SoundManager.getInstance(); // On initialise le jeu gameEngine = new GameEngine(); particleEngine = new ParticleEngine(); particleEngine.attachGraphicLayer(graphicLayer); gameEngine.attachParticleEngine(particleEngine); graphicLayer.attachGameBoard(gameEngine.getGameBoard()); graphicLayer.attachGameEngine(gameEngine); }