package engine.input; import engine.Engine; import engine.math.Vector3f; import engine.object.ObjectGl; import gameplay.match.match; import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFWKeyCallback; import java.nio.ByteBuffer; import java.nio.FloatBuffer; import static org.lwjgl.glfw.GLFW.*; import static org.lwjgl.opengl.GL11.*; public class KeyboardInput extends GLFWKeyCallback { public static boolean[] keys = new boolean[65536]; @Override public void invoke(long window, int key, int scancode, int action, int mods) { keys[key] = action != GLFW.GLFW_RELEASE; if(key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) glfwSetWindowShouldClose(window, true); else if(key == GLFW_KEY_SPACE && action == GLFW_PRESS) //Switch to wireframe if (glGetInteger(GL_POLYGON_MODE) == GL_FILL) glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); else glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); else if(key == GLFW_KEY_K && action == GLFW_PRESS){ match.showP1Hitbox = !match.showP1Hitbox; match.showP2Hitbox = !match.showP2Hitbox; } } public static boolean isKeyDown(int keyCode) { return glfwGetKey(Engine.getWindow(), keyCode) == 1; } public static void keyboardInput(ObjectGl token, int speed) { boolean keyPressed = false; if (KeyboardInput.isKeyDown(GLFW.GLFW_KEY_S)) { token.setTextureWrap(161,260,56,59); keyPressed = true; } else if (KeyboardInput.isKeyDown(GLFW.GLFW_KEY_W)) { keyPressed = true; } if (KeyboardInput.isKeyDown(GLFW.GLFW_KEY_A)) { token.translate(new Vector3f (speed * -1.0f, 0.0f, 0.0f)); token.setTextureWrap(121,0,57,82); keyPressed = true; } else if (KeyboardInput.isKeyDown(GLFW.GLFW_KEY_D)) { token.translate(new Vector3f (speed * 1.0f, 0.0f, 0.0f)); token.setTextureWrap(178,0,62,82); keyPressed = true; } if (!keyPressed) token.setTextureWrap(58,0,62,82); } }