PathGame.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package pathgame;
  2. import me.hammerle.snuviengine.api.Game;
  3. import me.hammerle.snuviengine.api.Gamepad;
  4. import me.hammerle.snuviengine.api.Renderer;
  5. import me.hammerle.snuviengine.api.Stats;
  6. import pathgame.gameplay.Gamestate;
  7. import pathgame.gameplay.Gamestates;
  8. import pathgame.gameplay.Keys;
  9. import pathgame.gameplay.Level;
  10. import pathgame.gameplay.menu.Menu;
  11. import pathgame.rendering.LevelRenderer;
  12. import pathgame.rendering.MenuRenderer;
  13. public class PathGame implements Game {
  14. private final Gamestate gamestate = new Gamestate();
  15. private final Level level = new Level();
  16. private final LevelRenderer levelRenderer = new LevelRenderer();
  17. private Menu menu;
  18. private MenuRenderer menuRenderer;
  19. private Keys keys;
  20. @Override
  21. public void onCompleteInitialization(Stats stats, me.hammerle.snuviengine.api.Keys keys, Gamepad gamepad) {
  22. this.keys = new Keys(keys);
  23. menu = new Menu(this.keys);
  24. menuRenderer = new MenuRenderer(this.keys);
  25. }
  26. @Override
  27. public void tick() {
  28. level.tick(gamestate, keys);
  29. levelRenderer.tick(level, gamestate, keys);
  30. menu.tick(gamestate, level, keys);
  31. if(keys.test.getTime() == 1) {
  32. //level.nextLevel();
  33. level.getPlayer().win(level.getMap());
  34. }
  35. }
  36. @Override
  37. public void renderTick(Renderer r, float lag) {
  38. if(gamestate.is(Gamestates.MENU)) {
  39. levelRenderer.renderTick(r, 0.0f, level, gamestate, keys);
  40. menuRenderer.renderTick(r, 0.0f, menu, keys);
  41. } else {
  42. levelRenderer.renderTick(r, lag, level, gamestate, keys);
  43. }
  44. }
  45. @Override
  46. public void onStop() {
  47. }
  48. @Override
  49. public boolean isRunning() {
  50. return gamestate.isRunning();
  51. }
  52. }