Long-Starlight-Snake-Game/GameManager.hpp

40 lines
1.1 KiB
C++
Raw Normal View History

#include "SynEngine.hpp"
class GameConfiguration;
class GameManager
{
private:
static GameConfiguration *config;
static unsigned lastInputDirection;
public:
static void KeyPress(sf::Keyboard::Key);
static void SetConfig(GameConfiguration &);
static GameConfiguration *GetConfig();
};
GameConfiguration *GameManager::config = NULL;
unsigned GameManager::lastInputDirection = 0;
void GameManager::KeyPress(sf::Keyboard::Key keycode)
{
switch (keycode)
{
case sf::Keyboard::Key::Right: case sf::Keyboard::Key::D: GameManager::lastInputDirection = 0; break;
case sf::Keyboard::Key::Down: case sf::Keyboard::Key::S: GameManager::lastInputDirection = 1; break;
case sf::Keyboard::Key::Left: case sf::Keyboard::Key::A: GameManager::lastInputDirection = 2; break;
case sf::Keyboard::Key::Up: case sf::Keyboard::Key::W: GameManager::lastInputDirection = 3; break;
}
}
void GameManager::SetConfig(GameConfiguration &config)
{
GameManager::config = &config;
}
GameConfiguration *GameManager::GetConfig()
{
return GameManager::config;
}