123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package me.hammerle.snuviengine.game;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.Random;
- import me.hammerle.snuviengine.api.Engine;
- import me.hammerle.snuviengine.api.KeyBinding;
- import me.hammerle.snuviengine.api.KeyHandler;
- import me.hammerle.snuviengine.api.Shader;
- import me.hammerle.snuviengine.api.TextureRenderer;
- import me.hammerle.snuviengine.util.Clock;
- import me.hammerle.snuviengine.util.WrappedInputStream;
- import static org.lwjgl.glfw.GLFW.*;
- public class Game extends Engine
- {
- public final static KeyBinding UP = KeyHandler.register(GLFW_KEY_UP);
- public final static KeyBinding DOWN = KeyHandler.register(GLFW_KEY_DOWN);
- public final static KeyBinding LEFT = KeyHandler.register(GLFW_KEY_LEFT);
- public final static KeyBinding RIGHT = KeyHandler.register(GLFW_KEY_RIGHT);
-
- public final static KeyBinding KEY_F = KeyHandler.register(GLFW_KEY_F);
- private boolean toogleFps = false;
- public final static KeyBinding KEY_T = KeyHandler.register(GLFW_KEY_T);
- private boolean toogleTps = false;
-
- private final TextureRenderer tr = new TextureRenderer(12);
-
- public BoxList<Entity> entities = new BoxList<>(5000, 0.0, 0.0, 400.0, 300.0, 1.0);
-
- private World w;
-
- public Game()
- {
- /*Random r = new Random(200);
- for(int i = 0; i < 4096; i++)
- {
- Entity ent = new Entity(this, 2.0, 2.0);
- ent.setPosition((int) (r.nextDouble() * 400.0), (int) (r.nextDouble() * 300));
- ent.node = entities.add(ent);
- }*/
-
- Hero hero = new Hero(this, 25.0, 25.0);
- hero.setPosition(0.0, 0.0);
- hero.node = entities.add(hero);
-
- w = new World(hero);
- try
- {
- w.read(new WrappedInputStream(new FileInputStream("./testworld")));
- }
- catch(IOException ex)
- {
- ex.printStackTrace();
- }
- }
-
- @Override
- public void init()
- {
- setNanosPerTick(50_000_000);
- //setMaxFps(120);
-
- //Shader.setAmbientLight(0.5f, 0.5f, 0.5f);
- Shader.setLightColor(0, 1f, 0.75f, 0.5f);
- Shader.setLightStrength(0, 0.01f);
- }
- @Override
- public void tick()
- {
- w.tick();
- CLOCK.start();
- entities.forEach(ent -> ent.tick());
- CLOCK.stop();
- CLOCK.calculate();
-
- if(KEY_F.getTime() == 1)
- {
- toogleFps = !toogleFps;
- setRenderFps(toogleFps);
- }
- if(KEY_T.getTime() == 1)
- {
- toogleTps = !toogleTps;
- setRenderTps(toogleTps);
- }
- }
-
- private static final Clock CLOCK = new Clock(250);
-
- @Override
- public void renderTick(float lag)
- {
- Shader.setLightEnabled(true);
- w.renderTick(lag);
-
- /*Shader.setTextureEnabled(false);
- Shader.setColorEnabled(true);
- Shader.getColorRenderer().drawRectangle(0, 299, 400, 300, 0xFFFFFFFF);
- entities.forEach(ent -> ent.renderTick(lag));*/
-
- Shader.setTextureEnabled(true);
- Shader.setColorEnabled(true);
- Shader.translateTo(0.0f, 0.0f);
- Shader.updateMatrix();
- float y = 5;
- y = Shader.getFontRenderer().drawString(5, y, true, "FPS " + String.format("%.1f", getFps()));
- y = Shader.getFontRenderer().drawString(5, y, true, "TPS " + String.format("%.1f", getTps()));
- y = Shader.getFontRenderer().drawString(5, y, true, String.valueOf(CLOCK.getTime()));
- y = Shader.getFontRenderer().drawString(5, y, true, String.valueOf(CLOCK.getMinTime()));
- }
- }
|