diff options
Diffstat (limited to 'src/player_controller.hpp')
-rw-r--r-- | src/player_controller.hpp | 43 |
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 |