|
@@ -1,135 +0,0 @@
|
|
-/*
|
|
|
|
- * To change this license header, choose License Headers in Project Properties.
|
|
|
|
- * To change this template file, choose Tools | Templates
|
|
|
|
- * and open the template in the editor.
|
|
|
|
- */
|
|
|
|
-package gameplay;
|
|
|
|
-
|
|
|
|
-import me.hammerle.snuviengine.api.KeyBinding;
|
|
|
|
-import me.hammerle.snuviengine.api.KeyHandler;
|
|
|
|
-import me.hammerle.snuviengine.api.Renderer;
|
|
|
|
-import me.hammerle.snuviengine.api.Texture;
|
|
|
|
-import org.lwjgl.glfw.GLFW;
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- *
|
|
|
|
- * @author Julia
|
|
|
|
- */
|
|
|
|
-public class Hiker {
|
|
|
|
-
|
|
|
|
- private float oldX = 0;
|
|
|
|
- private float oldY = 0;
|
|
|
|
- private float x = 0;
|
|
|
|
- private float y = 0;
|
|
|
|
-
|
|
|
|
- private static final float speed = 2;
|
|
|
|
- private static final float maxWidth = 1024;
|
|
|
|
- private static final float maxHeight = 1024;
|
|
|
|
-
|
|
|
|
- private enum moveStates {
|
|
|
|
- still, left, right, up, down
|
|
|
|
- };
|
|
|
|
- private moveStates moveState = moveStates.still;
|
|
|
|
-
|
|
|
|
- private static final Texture characterFront = new Texture("res\\character\\characterFront.png");
|
|
|
|
- private static final Texture characterLeft = new Texture("res\\character\\characterLeft.png");
|
|
|
|
- private static final Texture characterRight = new Texture("res\\character\\characterRight.png");
|
|
|
|
- private static final Texture characterBack = new Texture("res\\character\\characterBack.png");
|
|
|
|
-
|
|
|
|
- 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);
|
|
|
|
-
|
|
|
|
- public void Hiker() {
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void tick() {
|
|
|
|
- calcMoveState();
|
|
|
|
- animate();
|
|
|
|
-
|
|
|
|
- oldX = x;
|
|
|
|
- oldY = y;
|
|
|
|
-
|
|
|
|
- if (LEFT_KEY.isDown() && moveState != moveStates.up && moveState != moveStates.down && x > 0) {
|
|
|
|
- x -= speed;
|
|
|
|
- } else if (RIGHT_KEY.isDown() && moveState != moveStates.up && moveState != moveStates.down && x < maxWidth) {
|
|
|
|
- x += speed;
|
|
|
|
- } else if (UP_KEY.isDown() && moveState != moveStates.left && moveState != moveStates.right && y > 0) {
|
|
|
|
- y -= speed;
|
|
|
|
- } else if (DOWN_KEY.isDown() && moveState != moveStates.left && moveState != moveStates.right && y < maxHeight) {
|
|
|
|
- y += speed;
|
|
|
|
- } else {
|
|
|
|
- if (x % 32 != 0 || y % 32 != 0) {
|
|
|
|
- if (moveState == moveStates.left) {
|
|
|
|
- x -= speed;
|
|
|
|
- } else if (moveState == moveStates.right) {
|
|
|
|
- x += speed;
|
|
|
|
- } else if (moveState == moveStates.up) {
|
|
|
|
- y -= speed;
|
|
|
|
- } else if (moveState == moveStates.down) {
|
|
|
|
- y += speed;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void renderTick(Renderer r, float lag) {
|
|
|
|
- r.setMixColorEnabled(false);
|
|
|
|
-
|
|
|
|
- renderTestBackground(r);
|
|
|
|
-
|
|
|
|
- r.setColorEnabled(false);
|
|
|
|
- r.setTextureEnabled(true);
|
|
|
|
-
|
|
|
|
- r.translateTo(0.0f, 0.0f);
|
|
|
|
- r.updateMatrix();
|
|
|
|
-
|
|
|
|
- float ix = oldX + (x - oldX) * lag;
|
|
|
|
- float iy = oldY + (y - oldY) * lag;
|
|
|
|
- r.getTextureRenderer().drawRectangle(ix, iy, ix + 32, iy + 32, 0, 0, 1, 1);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private void calcMoveState() {
|
|
|
|
- if (oldX == x && oldY == y) {
|
|
|
|
- moveState = moveStates.still;
|
|
|
|
- } else if (oldX > x) {
|
|
|
|
- moveState = moveStates.left;
|
|
|
|
- } else if (oldX < x) {
|
|
|
|
- moveState = moveStates.right;
|
|
|
|
- } else if (oldY > y) {
|
|
|
|
- moveState = moveStates.up;
|
|
|
|
- } else if (oldY < y) {
|
|
|
|
- moveState = moveStates.down;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private void animate() {
|
|
|
|
- if (moveState == moveStates.still || moveState == moveStates.down) {
|
|
|
|
- characterFront.bind();
|
|
|
|
- } else if (moveState == moveStates.left) {
|
|
|
|
-
|
|
|
|
- characterLeft.bind();
|
|
|
|
- } else if (moveState == moveStates.right) {
|
|
|
|
- characterRight.bind();
|
|
|
|
- } else if (moveState == moveStates.up) {
|
|
|
|
- characterBack.bind();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private void renderTestBackground(Renderer r) {
|
|
|
|
- r.setColorEnabled(true);
|
|
|
|
- r.setTextureEnabled(false);
|
|
|
|
- r.getColorRenderer().drawRectangle(0, 0, 32, 32, 0xFF0000FF);
|
|
|
|
- r.getColorRenderer().drawRectangle(32, 0, 64, 32, 0xFF00FF00);
|
|
|
|
- r.getColorRenderer().drawRectangle(0, 32, 32, 64, 0xFF00FF00);
|
|
|
|
- r.getColorRenderer().drawRectangle(32, 32, 64, 64, 0xFF0000FF);
|
|
|
|
- r.getColorRenderer().drawRectangle(64, 0, 96, 32, 0xFF0000FF);
|
|
|
|
- r.getColorRenderer().drawRectangle(0, 64, 32, 96, 0xFF0000FF);
|
|
|
|
- r.getColorRenderer().drawRectangle(64, 32, 96, 64, 0xFF00FF00);
|
|
|
|
- r.getColorRenderer().drawRectangle(32, 64, 64, 96, 0xFF00FF00);
|
|
|
|
- r.getColorRenderer().drawRectangle(64, 64, 96, 96, 0xFF0000FF);
|
|
|
|
- }
|
|
|
|
-}
|
|
|