#pragma once #include #include #include #include #include "Vector2D.h" class AssetManager; class CollisionHandler; class TextureManager; class SoundManager; enum class TeamLabel; class Game { public: Game(); ~Game(); void init(const char* title, int xpos, int ypos, int width, int height, bool fullscreen); void selectCharacters(const char* &playerSprite, const char* &enemySprite); void handleEvents(); void update(); void render(); void clean(); bool running() const; static void addTile(unsigned long id, int x, int y); static SDL_Renderer* renderer; static SDL_Event event; static CollisionHandler* collisionHandler; static AssetManager* assets; static TextureManager* textureManager; static SoundManager* soundManager; void refreshPlayers(); TeamLabel getWinner() const; private: void setWinner(TeamLabel winningTeam); int counter = 0; bool isRunning = false; SDL_Window* window; TeamLabel winner; };