2022-09-19 01:20:51 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "xe_game_object.hpp"
|
2022-09-23 17:20:30 +00:00
|
|
|
#include "xe_input.hpp"
|
|
|
|
|
|
|
|
#include <glm/common.hpp>
|
|
|
|
#include <glm/fwd.hpp>
|
|
|
|
#include <glm/geometric.hpp>
|
|
|
|
#include <limits>
|
2022-09-19 01:20:51 +00:00
|
|
|
|
2022-09-20 01:28:41 +00:00
|
|
|
namespace app {
|
2022-09-19 01:20:51 +00:00
|
|
|
class KeyboardMovementController {
|
|
|
|
|
|
|
|
public:
|
|
|
|
struct KeyMappings {
|
2022-09-23 17:20:30 +00:00
|
|
|
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;
|
2022-09-19 01:20:51 +00:00
|
|
|
};
|
|
|
|
|
2022-09-25 16:13:07 +00:00
|
|
|
void update(xe::Input &input, xe::GameObject& gameObject, float dt);
|
2022-09-19 01:20:51 +00:00
|
|
|
|
|
|
|
KeyMappings keys{};
|
|
|
|
float moveSpeed{3.f};
|
|
|
|
float lookSpeed{1.5f};
|
|
|
|
|
|
|
|
};
|
|
|
|
}
|