#pragma once #include #include "BaseGame.h" #include "Camera.h" #include "WorldLevel.h" #include "WorldTile.h" class Game : public BaseGame { public: explicit Game(const Window& window); Game(const Game& other) = delete; Game& operator=(const Game& other) = delete; Game(Game&& other) = delete; Game& operator=(Game&& other) = delete; // http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rh-override ~Game(); void Update(float elapsedSec) override; void Draw() const override; // Event handling void ProcessKeyDownEvent(const SDL_KeyboardEvent& e) override; void ProcessKeyUpEvent(const SDL_KeyboardEvent& e) override; void ProcessMouseMotionEvent(const SDL_MouseMotionEvent& e) override; void ProcessMouseDownEvent(const SDL_MouseButtonEvent& e) override; void ProcessMouseUpEvent(const SDL_MouseButtonEvent& e) override; void ProcessImGui() override; private: // FUNCTIONS void Initialize(); void Cleanup(); Camera m_Camera; WorldLevel m_WorldLevel; Point2f m_MousePos{}; Point2f m_MouseOffset{}; bool m_IsRightMouseDown{}; };