diff --git a/src/camera.cpp b/src/camera.cpp index c98c9a2..d0d14d7 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -31,6 +31,12 @@ void Camera::processMovement(Direction direction, float deltaTime) { case DIRECTION_RIGHT: cameraPos += glm::normalize(glm::cross(cameraFront, cameraUp)) * speed; break; + case DIRECTION_UP: + cameraPos += cameraUp * speed; + break; + case DIRECTION_DOWN: + cameraPos -= cameraUp * speed; + break; } } diff --git a/src/camera.h b/src/camera.h index 9e7158a..f5379ef 100644 --- a/src/camera.h +++ b/src/camera.h @@ -6,6 +6,8 @@ enum Direction { DIRECTION_BACKWARDS, DIRECTION_RIGHT, DIRECTION_LEFT, + DIRECTION_UP, + DIRECTION_DOWN, }; class Camera { diff --git a/src/main.cpp b/src/main.cpp index 8f56808..bfdcd17 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -76,6 +76,10 @@ void processInput(GLFWwindow* window) { camera.processMovement(DIRECTION_LEFT, deltaTime); if (glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS) camera.processMovement(DIRECTION_RIGHT, deltaTime); + if (glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS) + camera.processMovement(DIRECTION_UP, deltaTime); + if (glfwGetKey(window, GLFW_KEY_LEFT_CONTROL) == GLFW_PRESS) + camera.processMovement(DIRECTION_DOWN, deltaTime); if (mode == 2) { float shiftFactor = (glfwGetKey(window, GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS) ? -0.5 : 0.5;