new: ja es pot començar el joc els dos jugador a l'hora
new: feedback visual per a saber qui ha pulsat start en la pantalla de titol Player: afegit estat RESPAWNING per no tindre que estar fent cabrioles amb la invulnerabilitat al crear als jugadors
This commit is contained in:
@@ -927,7 +927,7 @@ void Game::handlePlayerCollision(std::shared_ptr<Player> &player)
|
||||
playSound("player_collision.wav");
|
||||
screen_->shake();
|
||||
playSound("voice_no.wav");
|
||||
player->setPlayingState(PlayerState::DYING);
|
||||
player->setPlayingState(PlayerState::ROLLING);
|
||||
players_to_reorder.push_back(player);
|
||||
if (allPlayersAreNotPlaying())
|
||||
{
|
||||
@@ -1586,9 +1586,7 @@ void Game::handlePlayerContinue(const std::shared_ptr<Player> &player)
|
||||
const auto controllerIndex = player->getController();
|
||||
if (input_->checkInput(InputAction::START, INPUT_DO_NOT_ALLOW_REPEAT, Options::controllers[controllerIndex].type, Options::controllers[controllerIndex].index))
|
||||
{
|
||||
player->setPlayingState(PlayerState::PLAYING);
|
||||
player->addCredit();
|
||||
playSound("voice_thankyou.wav");
|
||||
player->setPlayingState(PlayerState::RESPAWNING);
|
||||
}
|
||||
|
||||
// Disminuye el contador de continuación si se presiona cualquier botón de disparo.
|
||||
@@ -1799,10 +1797,17 @@ void Game::initPlayers(int player_id)
|
||||
players_.back()->setName(Lang::getText("[SCOREBOARD] 2"));
|
||||
players_.back()->setController(getController(players_.back()->getId()));
|
||||
|
||||
// Activa el jugador que coincide con el "player_id"
|
||||
auto player = getPlayer(player_id);
|
||||
player->setPlayingState((demo_.enabled) ? PlayerState::PLAYING : PlayerState::ENTERING_SCREEN);
|
||||
player->setInvulnerable(false);
|
||||
// Activa el jugador que coincide con el "player_id" o ambos si es "0"
|
||||
if (player_id == 0)
|
||||
{
|
||||
// Activa ambos jugadores
|
||||
getPlayer(1)->setPlayingState(demo_.enabled ? PlayerState::PLAYING : PlayerState::ENTERING_SCREEN);
|
||||
getPlayer(2)->setPlayingState(demo_.enabled ? PlayerState::PLAYING : PlayerState::ENTERING_SCREEN);
|
||||
}
|
||||
else
|
||||
{
|
||||
getPlayer(player_id)->setPlayingState(demo_.enabled ? PlayerState::PLAYING : PlayerState::ENTERING_SCREEN);
|
||||
}
|
||||
}
|
||||
|
||||
// Hace sonar la música
|
||||
@@ -2053,30 +2058,29 @@ void Game::movePlayersToFront()
|
||||
// Comprueba si está activo el menu de servicio para poner el juego en pausa
|
||||
void Game::checkServiceMenu()
|
||||
{
|
||||
if (demo_.enabled)
|
||||
return;
|
||||
if (demo_.enabled)
|
||||
return;
|
||||
|
||||
static bool was_paused_before_service_menu = false;
|
||||
static bool service_menu_was_active = false;
|
||||
static bool was_paused_before_service_menu = false;
|
||||
static bool service_menu_was_active = false;
|
||||
|
||||
bool service_menu_is_active = ServiceMenu::get()->isEnabled();
|
||||
bool service_menu_is_active = ServiceMenu::get()->isEnabled();
|
||||
|
||||
if (service_menu_is_active && !service_menu_was_active)
|
||||
{
|
||||
// El menú acaba de abrirse
|
||||
was_paused_before_service_menu = paused_;
|
||||
pause(true);
|
||||
}
|
||||
else if (!service_menu_is_active && service_menu_was_active)
|
||||
{
|
||||
// El menú acaba de cerrarse
|
||||
pause(was_paused_before_service_menu);
|
||||
}
|
||||
if (service_menu_is_active && !service_menu_was_active)
|
||||
{
|
||||
// El menú acaba de abrirse
|
||||
was_paused_before_service_menu = paused_;
|
||||
pause(true);
|
||||
}
|
||||
else if (!service_menu_is_active && service_menu_was_active)
|
||||
{
|
||||
// El menú acaba de cerrarse
|
||||
pause(was_paused_before_service_menu);
|
||||
}
|
||||
|
||||
service_menu_was_active = service_menu_is_active;
|
||||
service_menu_was_active = service_menu_is_active;
|
||||
}
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
// Comprueba los eventos en el modo DEBUG
|
||||
void Game::checkDebugEvents(const SDL_Event &event)
|
||||
|
||||
Reference in New Issue
Block a user