#pragma once #include #include #include #include #include enum EInputDirection { FORWARD, BACKWARD, LEFT, RIGHT }; class Player : public GameObject { public: Player(glm::vec3 Position, glm::vec3 Rotation); ~Player() = default; void Update(); void ProcessKeyboard(EInputDirection Direction, float Delta); void ProcessMouseMovement(float XOffset, float YOffset, GLboolean ConstrainPitch = true); glm::mat4 GetViewMatrix() const; private: Camera* PlayerCamera; float Yaw; float MouseSensitivity; float WalkSpeed = 5.0f; float RunSpeed = 15.0f; bool bIsRunning = false; void UpdatePlayerVectors(); };