feat(demo): transició títol→demo amb dive de càmera + cortinilla negra (substitueix el fundido)
This commit is contained in:
@@ -56,7 +56,7 @@ GameScene::GameScene(SDLManager& sdl, SceneContext& context)
|
||||
starfield_parallax_(sdl.getRenderer()),
|
||||
playfield_(sdl.getRenderer()),
|
||||
border_(sdl.getRenderer()),
|
||||
fade_(sdl.getRenderer()) {
|
||||
curtain_(sdl.getRenderer()) {
|
||||
// Recuperar configuración de match des del context
|
||||
match_config_ = context_.getMatchConfig();
|
||||
|
||||
@@ -171,8 +171,9 @@ 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);
|
||||
// La cortinilla arrenca tapant i cau per destapar la demo (continua el
|
||||
// moviment iniciat al títol, que va acabar amb la pantalla negra).
|
||||
curtain_.reveal(Defaults::Game::Curtain::REVEAL_DURATION);
|
||||
} else {
|
||||
stage_manager_->init();
|
||||
}
|
||||
@@ -366,7 +367,7 @@ void GameScene::updateShipsControl(float delta_time) {
|
||||
}
|
||||
|
||||
auto GameScene::stepDemo(float delta_time) -> bool {
|
||||
fade_.update(delta_time); // fosa d'entrada des de negre
|
||||
curtain_.update(delta_time); // cortinilla que destapa la demo
|
||||
|
||||
// Qualsevol input trenca la demo i torna al títol (música intacta).
|
||||
if (Input::get()->checkAnyPlayerAction(DEMO_EXIT_ACTIONS)) {
|
||||
@@ -714,9 +715,9 @@ void GameScene::draw() {
|
||||
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();
|
||||
// Cortinilla d'entrada de la demo: per damunt de tot. No-op fora del mode
|
||||
// DEMO (curtain_ mai s'arrenca) i quan ja ha sortit per baix.
|
||||
curtain_.draw();
|
||||
}
|
||||
|
||||
void GameScene::drawEnemies() const {
|
||||
|
||||
Reference in New Issue
Block a user