2020-06-08 15:51:54 +03:00
|
|
|
#include "SynEngine.hpp"
|
|
|
|
class GameConfiguration;
|
2020-06-09 20:12:26 +03:00
|
|
|
class Grid;
|
2020-06-08 15:51:54 +03:00
|
|
|
|
|
|
|
class GameManager
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
static GameConfiguration *config;
|
2020-06-08 23:59:42 +03:00
|
|
|
static unsigned lastInputDirection;
|
2020-06-09 20:12:26 +03:00
|
|
|
static sf::Vector2i lastInputVector;
|
|
|
|
static Grid *grid;
|
2020-06-08 15:51:54 +03:00
|
|
|
|
|
|
|
public:
|
2020-06-09 20:12:26 +03:00
|
|
|
static Timer timer;
|
2020-06-08 23:59:42 +03:00
|
|
|
static void KeyPress(sf::Keyboard::Key);
|
2020-06-08 15:51:54 +03:00
|
|
|
static void SetConfig(GameConfiguration &);
|
|
|
|
static GameConfiguration *GetConfig();
|
2020-06-09 20:12:26 +03:00
|
|
|
static void SetGrid(Grid &);
|
|
|
|
static Grid &GetGrid();
|
|
|
|
static sf::Vector2i GetInputVector();
|
|
|
|
static unsigned GetInputDirection();
|
2020-06-08 15:51:54 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
GameConfiguration *GameManager::config = NULL;
|
2020-06-09 20:12:26 +03:00
|
|
|
Grid *GameManager::grid = NULL;
|
2020-06-08 23:59:42 +03:00
|
|
|
unsigned GameManager::lastInputDirection = 0;
|
2020-06-09 20:12:26 +03:00
|
|
|
sf::Vector2i GameManager::lastInputVector = sf::Vector2i(1, 0);
|
2020-06-08 23:59:42 +03:00
|
|
|
|
|
|
|
void GameManager::KeyPress(sf::Keyboard::Key keycode)
|
|
|
|
{
|
|
|
|
switch (keycode)
|
|
|
|
{
|
2020-06-09 20:12:26 +03:00
|
|
|
case sf::Keyboard::Key::Up: case sf::Keyboard::Key::W: GameManager::lastInputDirection = 3; GameManager::lastInputVector = sf::Vector2i(0, 1); break;
|
|
|
|
case sf::Keyboard::Key::Left: case sf::Keyboard::Key::A: GameManager::lastInputDirection = 2; GameManager::lastInputVector = sf::Vector2i(-1, 0); break;
|
|
|
|
case sf::Keyboard::Key::Down: case sf::Keyboard::Key::S: GameManager::lastInputDirection = 1; GameManager::lastInputVector = sf::Vector2i(0, -1); break;
|
|
|
|
case sf::Keyboard::Key::Right: case sf::Keyboard::Key::D: GameManager::lastInputDirection = 0; GameManager::lastInputVector = sf::Vector2i(1, 0); break;
|
2020-06-08 23:59:42 +03:00
|
|
|
}
|
|
|
|
}
|
2020-06-08 15:51:54 +03:00
|
|
|
|
2020-06-09 20:12:26 +03:00
|
|
|
sf::Vector2i GameManager::GetInputVector()
|
|
|
|
{
|
|
|
|
return GameManager::lastInputVector;
|
|
|
|
}
|
|
|
|
|
|
|
|
unsigned GameManager::GetInputDirection()
|
|
|
|
{
|
|
|
|
return GameManager::lastInputDirection;
|
|
|
|
}
|
|
|
|
|
2020-06-08 15:51:54 +03:00
|
|
|
void GameManager::SetConfig(GameConfiguration &config)
|
|
|
|
{
|
|
|
|
GameManager::config = &config;
|
|
|
|
}
|
|
|
|
|
|
|
|
GameConfiguration *GameManager::GetConfig()
|
|
|
|
{
|
|
|
|
return GameManager::config;
|
|
|
|
}
|
2020-06-09 20:12:26 +03:00
|
|
|
|
|
|
|
void GameManager::SetGrid(Grid &grid)
|
|
|
|
{
|
|
|
|
GameManager::grid = &grid;
|
|
|
|
}
|
|
|
|
|
|
|
|
Grid &GameManager::GetGrid()
|
|
|
|
{
|
|
|
|
return *GameManager::grid;
|
|
|
|
}
|