eliminats tots els SDL_Delay i bucles bloquejants (milestone 1)
- shakeScreen() convertit a màquina d'estats amb SDL_GetTicks (50ms per pas) - killPlayer() convertit a seqüència de fases (Shaking → Waiting → Done) - Fade FADE_FULLSCREEN convertit a per-frame amb alpha incremental - Fade FADE_RANDOM_SQUARE convertit a per-frame (un quadrat cada 100ms) - Title SUBSECTION_TITLE_2 convertit a no-bloquejant, variables static eliminades - Corregit so duplicat del crashSound al títol - Congelat input del jugador durant la seqüència de mort Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -88,6 +88,23 @@ class Game {
|
||||
Uint8 shakeCounter; // Contador para medir el tiempo que dura el efecto
|
||||
};
|
||||
|
||||
// Estado para el efecto de agitación intensa (muerte del jugador)
|
||||
struct deathShake_t {
|
||||
bool active; // Indica si el efecto está activo
|
||||
Uint8 step; // Paso actual del efecto (0-7)
|
||||
Uint32 lastStepTicks; // Ticks del último paso
|
||||
};
|
||||
|
||||
// Fases de la secuencia de muerte del jugador
|
||||
enum class DeathPhase { None, Shaking, Waiting, Done };
|
||||
|
||||
// Estado de la secuencia de muerte del jugador
|
||||
struct deathSequence_t {
|
||||
DeathPhase phase; // Fase actual
|
||||
Uint32 phaseStartTicks; // Ticks del inicio de la fase actual
|
||||
Player *player; // Jugador que está muriendo
|
||||
};
|
||||
|
||||
struct helper_t {
|
||||
bool needCoffee; // Indica si se necesitan cafes
|
||||
bool needCoffeeMachine; // Indica si se necesita PowerUp
|
||||
@@ -214,6 +231,8 @@ class Game {
|
||||
float enemySpeed; // Velocidad a la que se mueven los enemigos
|
||||
float defaultEnemySpeed; // Velocidad base de los enemigos, sin incrementar
|
||||
effect_t effect; // Variable para gestionar los efectos visuales
|
||||
deathShake_t deathShake; // Variable para gestionar el efecto de agitación intensa
|
||||
deathSequence_t deathSequence; // Variable para gestionar la secuencia de muerte
|
||||
helper_t helper; // Variable para gestionar las ayudas
|
||||
bool powerBallEnabled; // Indica si hay una powerball ya activa
|
||||
Uint8 powerBallCounter; // Contador de formaciones enemigas entre la aparicion de una PowerBall y otra
|
||||
@@ -459,9 +478,18 @@ class Game {
|
||||
// Deshabilita el efecto del item de detener el tiempo
|
||||
void disableTimeStopItem();
|
||||
|
||||
// Agita la pantalla
|
||||
// Inicia el efecto de agitación intensa de la pantalla
|
||||
void shakeScreen();
|
||||
|
||||
// Actualiza el efecto de agitación intensa
|
||||
void updateDeathShake();
|
||||
|
||||
// Indica si el efecto de agitación intensa está activo
|
||||
bool isDeathShaking();
|
||||
|
||||
// Actualiza la secuencia de muerte del jugador
|
||||
void updateDeathSequence();
|
||||
|
||||
// Actualiza las variables del menu de pausa del juego
|
||||
void updatePausedGame();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user