summaryrefslogtreecommitdiff
path: root/src/keyboard_movement_controller.hpp
blob: b90d36147761fd63d32f470f724b41c59dbcd088 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once

#include "xe_game_object.hpp"
#include "xe_window.hpp"
#include <GLFW/glfw3.h>

namespace xe {
  class KeyboardMovementController {

    public:
      struct KeyMappings {
        int moveLeft = GLFW_KEY_A;
        int moveRight = GLFW_KEY_D;
        int moveForward = GLFW_KEY_W;
        int moveBackward = GLFW_KEY_S;
        int moveUp = GLFW_KEY_E;
        int moveDown = GLFW_KEY_Q;
        int lookLeft = GLFW_KEY_LEFT;
        int lookRight = GLFW_KEY_RIGHT;
        int lookUp = GLFW_KEY_UP;
        int lookDown = GLFW_KEY_DOWN;
      };

      void moveInPlaneXZ(GLFWwindow* window, float dt, XeGameObject& gameObject);

      KeyMappings keys{};
      float moveSpeed{3.f};
      float lookSpeed{1.5f};

  };
}