#include "gamestate.h" #include "widgets/button.h" #include "widgets/group.h" #include "core/game.h" GameState::GameState(const std::shared_ptr& game, Callbacks&& callbacks) : _game(game), _onLeaveGameCallback(callbacks.onLeaveGame) {} void GameState::input(const sf::Event& event) { if (event.key.code == sf::Keyboard::Space && event.type == sf::Event::KeyReleased) _music.isPaused() ? _music.play() : _music.pause(); _game->input(PlayerInput{_music.fetchOffset(), event}); } void GameState::update(const sf::Time& dt) { _game->update(UpdateData{_music.fetchOffset(), dt}); } void GameState::draw(sf::RenderTarget &target, sf::RenderStates states) const { (void)target; (void)states; _game->display(); } void GameState::enter(sf::Vector2u&& render_size) { (void)render_size; // We will need this later when I add UI to game state _game->run(); _music.openFromFile("METEOR.flac"); _music.setVolume(10); _music.play(); } void GameState::leave() { _onLeaveGameCallback(); }