Game.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package me.hammerle.snuviengine.game;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.util.Random;
  6. import me.hammerle.snuviengine.api.Engine;
  7. import me.hammerle.snuviengine.api.KeyBinding;
  8. import me.hammerle.snuviengine.api.KeyHandler;
  9. import me.hammerle.snuviengine.api.Shader;
  10. import me.hammerle.snuviengine.api.Texture;
  11. import me.hammerle.snuviengine.api.TextureRenderer;
  12. import me.hammerle.snuviengine.util.Clock;
  13. import me.hammerle.snuviengine.util.WrappedInputStream;
  14. import static org.lwjgl.glfw.GLFW.*;
  15. public class Game extends Engine
  16. {
  17. public final static KeyBinding UP = KeyHandler.register(GLFW_KEY_UP);
  18. public final static KeyBinding DOWN = KeyHandler.register(GLFW_KEY_DOWN);
  19. public final static KeyBinding LEFT = KeyHandler.register(GLFW_KEY_LEFT);
  20. public final static KeyBinding RIGHT = KeyHandler.register(GLFW_KEY_RIGHT);
  21. public final static KeyBinding KEY_F = KeyHandler.register(GLFW_KEY_F);
  22. private boolean toogleFps = false;
  23. public final static KeyBinding KEY_T = KeyHandler.register(GLFW_KEY_T);
  24. private boolean toogleTps = false;
  25. private final TextureRenderer tr = new TextureRenderer();
  26. public BoxList entities = new BoxList(0.0, 0.0, 400.0, 300.0, 1.0);
  27. private World w;
  28. public Game()
  29. {
  30. /*Random r = new Random(200);
  31. for(int i = 0; i < 128; i++)
  32. {
  33. Entity ent = new Entity(this, 5.0, 5.0);
  34. ent.setPosition((int) (r.nextDouble() * 400.0), (int) (r.nextDouble() * 300));
  35. ent.node = entities.add(ent);
  36. }*/
  37. Hero hero = new Hero(this, 25.0, 25.0);
  38. hero.setPosition(0.0, 0.0);
  39. hero.node = entities.add(hero);
  40. w = new World(hero);
  41. try
  42. {
  43. w.read(new WrappedInputStream(new FileInputStream("./testworld")));
  44. }
  45. catch(IOException ex)
  46. {
  47. ex.printStackTrace();
  48. }
  49. }
  50. @Override
  51. public void init()
  52. {
  53. setNanosPerTick(50_000_000);
  54. setMaxFps(120);
  55. }
  56. @Override
  57. public void tick()
  58. {
  59. w.tick();
  60. /*CLOCK.start();
  61. entities.forEach(ent -> ent.tick());
  62. CLOCK.stop();
  63. CLOCK.calculate();
  64. if(KEY_F.getTime() == 1)
  65. {
  66. toogleFps = !toogleFps;
  67. setRenderFps(toogleFps);
  68. }
  69. if(KEY_T.getTime() == 1)
  70. {
  71. toogleTps = !toogleTps;
  72. setRenderTps(toogleTps);
  73. }*/
  74. }
  75. private static final Clock CLOCK = new Clock(250);
  76. @Override
  77. public void renderTick(float lag)
  78. {
  79. w.renderTick(lag);
  80. /*Shader.setTextureEnabled(false);
  81. Shader.setColorEnabled(true);
  82. Shader.getColorRenderer().drawRectangle(0, 299, 400, 300, 0xFFFFFFFF);
  83. entities.forEach(ent -> ent.renderTick(lag));*/
  84. Shader.setTextureEnabled(true);
  85. Shader.setColorEnabled(true);
  86. Shader.translateTo(0.0f, 0.0f);
  87. Shader.updateMatrix();
  88. float y = 5;
  89. y = Shader.getFontRenderer().drawString(5, y, true, "FPS " + String.format("%.1f", getFps()));
  90. y = Shader.getFontRenderer().drawString(5, y, true, "TPS " + String.format("%.1f", getTps()));
  91. y = Shader.getFontRenderer().drawString(5, y, true, String.valueOf(CLOCK.getTime()));
  92. y = Shader.getFontRenderer().drawString(5, y, true, String.valueOf(CLOCK.getMinTime()));
  93. }
  94. }