ProtoTank/Game.hpp

42 lines
832 B
C++

#pragma once
#include <vector>
#include <memory>
#include <SFML/System/Clock.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
#include "Engine/Graphics/DebugUI.hpp"
#include "Engine/Utils/Timers.hpp"
typedef enum eGameStatus {
GAME_INIT,
GAME_RUNNING,
GAME_QUIT
} GAME_STATUS;
class Game final {
public:
Game(bool dbg) noexcept(false);
~Game() {}
Game(Game&&) = default;
Game& operator= (Game&&) = default;
Game(Game const&) = delete;
Game& operator= (Game const&) = delete;
GAME_STATUS Update(SysTimer& time);
void Render(SysTimer& time);
private:
void InitWindows();
bool gbDbgModeEnabled;
std::shared_ptr<sf::RenderWindow> gMainWindow = nullptr;
std::unique_ptr<DebugUI> gDbgUI = nullptr;
sf::Clock gLoopTimer;
std::vector<double> gTicksMonitoring;
};