Merge branch 'wasd'
This commit is contained in:
commit
3c350e6774
580
scene-graph.scg
580
scene-graph.scg
File diff suppressed because it is too large
Load Diff
60
src/main.c
60
src/main.c
|
@ -45,6 +45,7 @@ int framesSinceUpdate = 0;
|
||||||
GLfloat step = 0.0f;
|
GLfloat step = 0.0f;
|
||||||
const GLfloat pi = 3.14159f;
|
const GLfloat pi = 3.14159f;
|
||||||
|
|
||||||
|
vec3 origin = {0.0f, 0.0f, 0.0f};
|
||||||
vec3 cameraPosition = {0.0f, 2.0f, 1.0f};
|
vec3 cameraPosition = {0.0f, 2.0f, 1.0f};
|
||||||
vec3 objectPosition = {0.0f, 0.0f, 0.0f};
|
vec3 objectPosition = {0.0f, 0.0f, 0.0f};
|
||||||
|
|
||||||
|
@ -102,23 +103,65 @@ void handleInputs(double deltaTime) {
|
||||||
}
|
}
|
||||||
if (!cameraTraveling) {
|
if (!cameraTraveling) {
|
||||||
if (glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS) {
|
if (glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS) {
|
||||||
cameraPosition.z += deltaTime * 10;
|
vec3 delta;
|
||||||
|
|
||||||
|
vec3Subtract(&delta, &origin, &cameraPosition);
|
||||||
|
vec3Normalise(&delta, &delta);
|
||||||
|
vec3Multiply(&delta, &delta, -10);
|
||||||
|
vec3Multiply(&delta, &delta, deltaTime);
|
||||||
|
|
||||||
|
vec3Add(&cameraPosition, &cameraPosition, &delta);
|
||||||
}
|
}
|
||||||
if (glfwGetKey(window, GLFW_KEY_W) == GLFW_PRESS) {
|
if (glfwGetKey(window, GLFW_KEY_W) == GLFW_PRESS) {
|
||||||
cameraPosition.z -= deltaTime * 10;
|
vec3 delta;
|
||||||
|
vec3Subtract(&delta, &origin, &cameraPosition);
|
||||||
|
if (vec3Length(&delta) > 0.1) {
|
||||||
|
vec3Normalise(&delta, &delta);
|
||||||
|
vec3Multiply(&delta, &delta, 10);
|
||||||
|
vec3Multiply(&delta, &delta, deltaTime);
|
||||||
|
|
||||||
|
vec3Add(&cameraPosition, &cameraPosition, &delta);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS) {
|
if (glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS) {
|
||||||
cameraPosition.x += deltaTime * 10;
|
vec4 delta;
|
||||||
|
mat4 transform;
|
||||||
|
|
||||||
|
vec3Subtract((vec3*)&delta, &origin, &cameraPosition);
|
||||||
|
delta.y = 0;
|
||||||
|
vec3Normalise((vec3*)&delta, (vec3*)&delta);
|
||||||
|
vec3Multiply((vec3*)&delta, (vec3*)&delta, -10);
|
||||||
|
|
||||||
|
rotationY(&transform, pi / 2);
|
||||||
|
multiplyAny((GLfloat*)&delta, (GLfloat*)&transform, (GLfloat*)&delta, 4, 4, 1);
|
||||||
|
|
||||||
|
vec3Multiply((vec3*)&delta, (vec3*)&delta, deltaTime);
|
||||||
|
|
||||||
|
vec3Add(&cameraPosition, &cameraPosition, (vec3*)&delta);
|
||||||
}
|
}
|
||||||
if (glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS) {
|
if (glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS) {
|
||||||
cameraPosition.x -= deltaTime * 10;
|
vec4 delta;
|
||||||
|
mat4 transform;
|
||||||
|
|
||||||
|
vec3Subtract((vec3*)&delta, &origin, &cameraPosition);
|
||||||
|
delta.y = 0;
|
||||||
|
vec3Normalise((vec3*)&delta, (vec3*)&delta);
|
||||||
|
vec3Multiply((vec3*)&delta, (vec3*)&delta, 10);
|
||||||
|
|
||||||
|
rotationY(&transform, pi / 2);
|
||||||
|
multiplyAny((GLfloat*)&delta, (GLfloat*)&transform, (GLfloat*)&delta, 4, 4, 1);
|
||||||
|
|
||||||
|
vec3Multiply((vec3*)&delta, (vec3*)&delta, deltaTime);
|
||||||
|
|
||||||
|
vec3Add(&cameraPosition, &cameraPosition, (vec3*)&delta);
|
||||||
}
|
}
|
||||||
if (glfwGetKey(window, GLFW_KEY_F) == GLFW_PRESS) {
|
if (glfwGetKey(window, GLFW_KEY_F) == GLFW_PRESS || glfwGetKey(window, GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS) {
|
||||||
cameraPosition.y += deltaTime * 10;
|
|
||||||
}
|
|
||||||
if (glfwGetKey(window, GLFW_KEY_R) == GLFW_PRESS) {
|
|
||||||
cameraPosition.y -= deltaTime * 10;
|
cameraPosition.y -= deltaTime * 10;
|
||||||
}
|
}
|
||||||
|
if (glfwGetKey(window, GLFW_KEY_R) == GLFW_PRESS || glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS) {
|
||||||
|
cameraPosition.y += deltaTime * 10;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SceneNode* chalkboard = findNodeByName("myChalkboard1", rootNode);
|
SceneNode* chalkboard = findNodeByName("myChalkboard1", rootNode);
|
||||||
|
@ -342,7 +385,6 @@ void draw(void) {
|
||||||
GLfloat stepi = step * pi * 2;
|
GLfloat stepi = step * pi * 2;
|
||||||
|
|
||||||
// ------------- VIEWING TRANSFORMATION -------------------
|
// ------------- VIEWING TRANSFORMATION -------------------
|
||||||
vec3 origin = {0.0f, 0.0f, 0.0f};
|
|
||||||
vec3 up = {0.0f, 1.0f, 0.0f};
|
vec3 up = {0.0f, 1.0f, 0.0f};
|
||||||
|
|
||||||
lookAt(&viewingTransformation, &cameraPosition, &origin, &up);
|
lookAt(&viewingTransformation, &cameraPosition, &origin, &up);
|
||||||
|
|
Loading…
Reference in New Issue