First update
This commit is contained in:
commit
292abf9a57
28 changed files with 1886 additions and 0 deletions
67
Diffuse light/src/fr/technicalgames/render/Camera.java
Normal file
67
Diffuse light/src/fr/technicalgames/render/Camera.java
Normal file
|
@ -0,0 +1,67 @@
|
|||
package fr.technicalgames.render;
|
||||
import static org.lwjgl.glfw.GLFW.*;
|
||||
|
||||
import org.lwjgl.glfw.*;
|
||||
import org.lwjgl.opengl.*;
|
||||
|
||||
import fr.technicalgames.*;
|
||||
import fr.technicalgames.input.*;
|
||||
import fr.technicalgames.math.*;
|
||||
|
||||
|
||||
|
||||
public class Camera {
|
||||
|
||||
public static Matrix4f matrix = new Matrix4f();
|
||||
public static final float SPEED = 1.0f;
|
||||
public static final float sens = 0.5f;
|
||||
public static float speed = 1.0f;
|
||||
|
||||
|
||||
|
||||
public static Vector3f rot = new Vector3f();
|
||||
public static Vector3f pos = new Vector3f();
|
||||
|
||||
public static void update(){
|
||||
speed = SPEED * Main.delta;
|
||||
if(Input.isKey(GLFW_KEY_LEFT_CONTROL))speed *= 2.0f;
|
||||
rot.x += -Input.getDMouse().getY() * sens;
|
||||
rot.y += -Input.getDMouse().getX() * sens;
|
||||
if(rot.x > 90)rot.x = 90;
|
||||
if(rot.x < -90)rot.x = -90;
|
||||
if(Input.isKey(GLFW.GLFW_KEY_W)){
|
||||
pos.x += Mathf.cos(Mathf.toRadians(rot.y + 90)) * speed;
|
||||
pos.z += Mathf.sin(Mathf.toRadians(rot.y + 90)) * speed;
|
||||
}
|
||||
if(Input.isKey(GLFW.GLFW_KEY_S)){
|
||||
pos.x += -Mathf.cos(Mathf.toRadians(rot.y + 90)) * speed;
|
||||
pos.z += -Mathf.sin(Mathf.toRadians(rot.y + 90)) * speed;
|
||||
}
|
||||
if(Input.isKey(GLFW.GLFW_KEY_A)){
|
||||
pos.x += -Mathf.cos(Mathf.toRadians(rot.y)) * speed;
|
||||
pos.z += -Mathf.sin(Mathf.toRadians(rot.y)) * speed;
|
||||
}
|
||||
if(Input.isKey(GLFW.GLFW_KEY_D)){
|
||||
pos.x += Mathf.cos(Mathf.toRadians(rot.y)) * speed;
|
||||
pos.z += Mathf.sin(Mathf.toRadians(rot.y)) * speed;
|
||||
}
|
||||
if(Input.isKey(GLFW.GLFW_KEY_LEFT_SHIFT)){
|
||||
pos.y -= speed;
|
||||
}
|
||||
if(Input.isKey(GLFW.GLFW_KEY_SPACE)){
|
||||
pos.y += speed;
|
||||
}
|
||||
if(Input.isKeyDown(GLFW_KEY_ESCAPE))glfwSetWindowShouldClose(Main.windowID, GL11.GL_TRUE);
|
||||
if(Input.isButtonDown(0))glfwSetInputMode(Main.windowID, GLFW_CURSOR, GLFW_CURSOR_DISABLED);
|
||||
if(Input.isButtonDown(1))glfwSetInputMode(Main.windowID, GLFW_CURSOR, GLFW_CURSOR_NORMAL);
|
||||
}
|
||||
|
||||
public static void transform(){
|
||||
matrix.loadIdentity();
|
||||
matrix.rotate(new Quaternion(new Vector3f(1,0,0),rot.x));
|
||||
matrix.rotate(new Quaternion(new Vector3f(0,1,0),rot.y));
|
||||
matrix.rotate(new Quaternion(new Vector3f(0,0,1),rot.z));
|
||||
matrix.tranlate(-pos.x, -pos.y, -pos.z);
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue