feat(demo): transició per fosa a/desde negre en el salt títol→demo
This commit is contained in:
@@ -55,7 +55,8 @@ GameScene::GameScene(SDLManager& sdl, SceneContext& context)
|
||||
text_(sdl.getRenderer()),
|
||||
starfield_parallax_(sdl.getRenderer()),
|
||||
playfield_(sdl.getRenderer()),
|
||||
border_(sdl.getRenderer()) {
|
||||
border_(sdl.getRenderer()),
|
||||
fade_(sdl.getRenderer()) {
|
||||
// Recuperar configuración de match des del context
|
||||
match_config_ = context_.getMatchConfig();
|
||||
|
||||
@@ -170,6 +171,8 @@ GameScene::GameScene(SDLManager& sdl, SceneContext& context)
|
||||
Audio::get()->enableSound(false);
|
||||
// El fons (graella) ha d'aparèixer ja muntat: la demo és una partida en marxa.
|
||||
playfield_.completeBuild();
|
||||
// Fosa des de negre sobre el joc ja en marxa (transició suau des del títol).
|
||||
fade_.start(1.0F, 0.0F, Defaults::Game::Fade::DEMO_IN_DURATION);
|
||||
} else {
|
||||
stage_manager_->init();
|
||||
}
|
||||
@@ -363,6 +366,8 @@ void GameScene::updateShipsControl(float delta_time) {
|
||||
}
|
||||
|
||||
auto GameScene::stepDemo(float delta_time) -> bool {
|
||||
fade_.update(delta_time); // fosa d'entrada des de negre
|
||||
|
||||
// Qualsevol input trenca la demo i torna al títol (música intacta).
|
||||
if (Input::get()->checkAnyPlayerAction(DEMO_EXIT_ACTIONS)) {
|
||||
context_.setNextScene(SceneType::TITLE, Option::JUMP_TO_TITLE_MAIN);
|
||||
@@ -708,6 +713,10 @@ void GameScene::draw() {
|
||||
drawLevelCompletedState();
|
||||
break;
|
||||
}
|
||||
|
||||
// Fosa d'entrada de la demo: per damunt de tot. No-op fora del mode DEMO
|
||||
// (fade_ mai s'arrenca) i quan ja ha acabat (alpha 0).
|
||||
fade_.draw();
|
||||
}
|
||||
|
||||
void GameScene::drawEnemies() const {
|
||||
|
||||
Reference in New Issue
Block a user