Aggiungi animazione di discesa nella botola

Quando il giocatore raggiunge la botola (vittoria/finale), invece di
pulire subito lo schermo, il giocatore scende di pochi pixel verso il
basso (descend_offset) per 30 frame prima che appaia la schermata
Going Deeper / finale.

- descend_offset: variabile globale, incrementata durante game_over_timer
- render.c: y_offset negativo (discesa graduale, >>1 = meta' pixel)
- player_logic.c: rimossa la dissolvenza immediata, avviata l'animazione
- engine.c: animazione durante il timer, max 12 step (~6 pixel)
This commit is contained in:
2026-06-26 12:44:00 +02:00
parent de55ba092e
commit 768429a7f9
5 changed files with 23 additions and 7 deletions
+4 -5
View File
@@ -90,12 +90,11 @@ void update_player_movement(uint8_t keys, uint8_t prev_keys) {
if (maze[player_ly][player_lx] == 2) {
// Livello 8 completato -> finale (gioco finito); altrimenti Going Deeper (lvl successivo).
game_over = (level >= 8) ? 3 : 2;
game_over_timer = 30; // Piccolo ritardo prima che la scena cambi
game_over_timer = 30; // Animazione di discesa (30 frame)
descend_offset = 1; // avvia l'animazione di discesa nella botola
update_stamina_display();
// Effetto dissolvenza: ripulisce tutto lo schermo per mostrare la scritta VITTORIA su sfondo nero
memset(map_buffer, 0, sizeof(map_buffer));
set_bkg_tiles(0, 0, 32, 32, map_buffer);
// Lo schermo non viene pulito subito: l'animazione di discesa
// avviene durante i 30 frame di game_over_timer.
}
}
return; // Interrompe qui se stiamo camminando