summaryrefslogtreecommitdiff
path: root/src/player_controller.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/player_controller.hpp')
-rw-r--r--src/player_controller.hpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/player_controller.hpp b/src/player_controller.hpp
new file mode 100644
index 0000000..e34f1ed
--- /dev/null
+++ b/src/player_controller.hpp
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "xe_game_object.hpp"
+#include "xe_input.hpp"
+
+#include <glm/common.hpp>
+#include <glm/fwd.hpp>
+#include <glm/geometric.hpp>
+#include <limits>
+
+namespace app {
+
+ class PlayerController {
+
+ public:
+
+ PlayerController(xe::Input &input, xe::GameObject &viewerObject);
+ ~PlayerController();
+
+ struct KeyMappings {
+ int moveLeft = KEY_A;
+ int moveRight = KEY_D;
+ int moveForward = KEY_W;
+ int moveBackward = KEY_S;
+ int moveUp = KEY_E;
+ int moveDown = KEY_Q;
+ int lookLeft = KEY_LEFT;
+ int lookRight = KEY_RIGHT;
+ int lookUp = KEY_UP;
+ int lookDown = KEY_DOWN;
+ };
+
+ void update(float dt);
+
+ xe::Input &input;
+ xe::GameObject &viewerObject;
+
+ KeyMappings keys{};
+ float moveSpeed{250.f};
+ float lookSpeed{1.5f};
+
+ };
+} \ No newline at end of file