feat: estat DISABLED i spawn aeri al començar la sala — v0.25.0
This commit is contained in:
1 parent
645db217fa
commit
580c13e854
8 files changed
+280
-104
No files matched your search
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@@ -84,8 +85,34 @@ class GameScene : public Scene {
|
||||
|
||||
// Vector des del principi: AEE suportarà multijugador local; cada Player
|
||||
// té els seus propis Controls i entra al vector amb una crida extra.
|
||||
// Sempre conté **dos** entrades (P1 a [0], P2 a [1]) tant en mode BOTH
|
||||
// com en single-player: l'slot inactiu es queda en estat DISABLED de
|
||||
// manera permanent, deixant el camí preparat per al "join in progress"
|
||||
// futur (el segon jugador podrà entrar a meitat de partida sense
|
||||
// recrear estructures). Veure `players_starts_active_`.
|
||||
std::vector<std::unique_ptr<Player>> players_;
|
||||
|
||||
// Quins slots juguen aquesta partida segons `config_.starting_players`.
|
||||
// Index = id del jugador (0 = P1, 1 = P2). Determina a qui aplica el
|
||||
// spawn aeri al final de la fase 0 d'INTRO; un slot amb `false` es
|
||||
// queda DISABLED tot el cicle de sala.
|
||||
std::array<bool, 2> players_starts_active_{false, false};
|
||||
|
||||
// Mil·lisegons des de l'entrada en ROOM_INTRO, per disparar la
|
||||
// cinemàtica de spawn aeri quan s'arriba a
|
||||
// `transition_config_.player_spawn_delay_ms`. Es reseteja a
|
||||
// `setState(ROOM_INTRO)`. `players_spawned_in_intro_` garanteix
|
||||
// que el trigger només es dispara una vegada per cicle.
|
||||
int room_intro_elapsed_ms_{0};
|
||||
bool players_spawned_in_intro_{false};
|
||||
|
||||
// Cinemàtica de spawn: posa els slots actius en AIRBORNE des d'una
|
||||
// altura fora de pantalla. Cridat per `updateRoomTransition` quan
|
||||
// `room_intro_elapsed_ms_` supera el delay configurat. Idempotent
|
||||
// (consulta `players_spawned_in_intro_`). També és el punt al qual
|
||||
// es connectarà el respawn post-mort en el futur.
|
||||
void triggerActivePlayerSpawn();
|
||||
|
||||
// Vista plana de punters crus — la fa servir Player com a llista
|
||||
// d'obstacles mòbils a la callback de col·lisió. Es construeix un sol
|
||||
// cop al ctor (els punters són estables perquè `players_` no es
|
||||
|
||||
Reference in new issue
Block a user