forked from NaiJi/project-kyoku
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.0 KiB
C++
45 lines
1.0 KiB
C++
#include "gamestate.h"
|
|
#include "widgets/button.h"
|
|
#include "widgets/group.h"
|
|
|
|
#include "core/game.h"
|
|
|
|
GameState::GameState(const std::shared_ptr<Game>& 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();
|
|
}
|