|
@@ -5,18 +5,25 @@ import me.hammerle.snuviengine.api.KeyBinding;
|
|
|
import me.hammerle.snuviengine.api.KeyHandler;
|
|
|
import me.hammerle.snuviengine.api.Renderer;
|
|
|
import org.lwjgl.glfw.GLFW;
|
|
|
+import pathgame.rendering.TileMapRenderer;
|
|
|
+import pathgame.tilemap.TileMap;
|
|
|
+import pathgame.utils.TestUtils;
|
|
|
|
|
|
public class PathGame implements IGame
|
|
|
{
|
|
|
- private float oldX = 0;
|
|
|
- private float oldY = 0;
|
|
|
- private float x = 0;
|
|
|
- private float y = 0;
|
|
|
+ private final TileMapRenderer mapRenderer = new TileMapRenderer();
|
|
|
+ private final TileMap map = TestUtils.getTestMap(25, 15);
|
|
|
|
|
|
- private static final KeyBinding UP_KEY = KeyHandler.register(GLFW.GLFW_KEY_W);
|
|
|
- private static final KeyBinding DOWN_KEY = KeyHandler.register(GLFW.GLFW_KEY_S);
|
|
|
- private static final KeyBinding LEFT_KEY = KeyHandler.register(GLFW.GLFW_KEY_A);
|
|
|
- private static final KeyBinding RIGHT_KEY = KeyHandler.register(GLFW.GLFW_KEY_D);
|
|
|
+ private final static KeyBinding ZOOM_IN = KeyHandler.register(GLFW.GLFW_KEY_UP);
|
|
|
+ private final static KeyBinding ZOOM_OUT = KeyHandler.register(GLFW.GLFW_KEY_DOWN);
|
|
|
+
|
|
|
+ private final static KeyBinding UP = KeyHandler.register(GLFW.GLFW_KEY_W);
|
|
|
+ private final static KeyBinding DOWN = KeyHandler.register(GLFW.GLFW_KEY_S);
|
|
|
+ private final static KeyBinding LEFT = KeyHandler.register(GLFW.GLFW_KEY_A);
|
|
|
+ private final static KeyBinding RIGHT = KeyHandler.register(GLFW.GLFW_KEY_D);
|
|
|
+
|
|
|
+ private float x = 0.0f;
|
|
|
+ private float y = 0.0f;
|
|
|
|
|
|
public PathGame()
|
|
|
{
|
|
@@ -25,31 +32,46 @@ public class PathGame implements IGame
|
|
|
@Override
|
|
|
public void tick()
|
|
|
{
|
|
|
- oldX = x;
|
|
|
- oldY = y;
|
|
|
+ mapRenderer.tick();
|
|
|
+
|
|
|
+ if(ZOOM_IN.isDown())
|
|
|
+ {
|
|
|
+ mapRenderer.setScale(mapRenderer.getScale() * 1.05f);
|
|
|
+ }
|
|
|
+ if(ZOOM_OUT.isDown())
|
|
|
+ {
|
|
|
+ mapRenderer.setScale(mapRenderer.getScale() / 1.05f);
|
|
|
+ }
|
|
|
|
|
|
- if(LEFT_KEY.isDown())
|
|
|
+ if(UP.isDown())
|
|
|
{
|
|
|
- x -= 10;
|
|
|
+ y -= 20;
|
|
|
}
|
|
|
- if(RIGHT_KEY.isDown())
|
|
|
+ if(DOWN.isDown())
|
|
|
{
|
|
|
- x += 10;
|
|
|
+ y += 20;
|
|
|
+ }
|
|
|
+ if(LEFT.isDown())
|
|
|
+ {
|
|
|
+ x -= 20;
|
|
|
+ }
|
|
|
+ if(RIGHT.isDown())
|
|
|
+ {
|
|
|
+ x += 20;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void renderTick(Renderer r, float lag)
|
|
|
{
|
|
|
- r.setMixColorEnabled(false);
|
|
|
-
|
|
|
+ mapRenderer.renderTick(map, r, false, x, y);
|
|
|
+
|
|
|
r.translateTo(0.0f, 0.0f);
|
|
|
r.updateMatrix();
|
|
|
-
|
|
|
- float ix = oldX + (x - oldX) * lag;
|
|
|
- float iy = oldY + (y - oldY) * lag;
|
|
|
-
|
|
|
- r.getColorRenderer().drawRectangle(ix, iy, ix + 20, iy + 20, 0xFF0000FF);
|
|
|
+ r.setTextureEnabled(false);
|
|
|
+ r.setColorEnabled(true);
|
|
|
+ r.getColorRenderer().drawRectangle(0, 0, mapRenderer.getWidth(map), 10, 0xFF0000FF);
|
|
|
+ r.getColorRenderer().drawRectangle(0, 0, 10, mapRenderer.getHeight(map), 0xFF0000FF);
|
|
|
}
|
|
|
|
|
|
@Override
|