Implementat el final del joc
This commit is contained in:
@@ -39,9 +39,9 @@ void Player::init()
|
||||
// Inicializa variables de estado
|
||||
pos_x_ = default_pos_x_;
|
||||
pos_y_ = default_pos_y_;
|
||||
status_walking_ = PlayerStatus::WALKING_STOP;
|
||||
status_firing_ = PlayerStatus::FIRING_NONE;
|
||||
status_playing_ = PlayerStatus::WAITING;
|
||||
walking_state_ = PlayerState::WALKING_STOP;
|
||||
firing_state_ = PlayerState::FIRING_NONE;
|
||||
playing_state_ = PlayerState::WAITING;
|
||||
invulnerable_ = true;
|
||||
invulnerable_counter_ = INVULNERABLE_COUNTER_;
|
||||
power_up_ = false;
|
||||
@@ -70,19 +70,15 @@ void Player::init()
|
||||
// Actua en consecuencia de la entrada recibida
|
||||
void Player::setInput(InputType input)
|
||||
{
|
||||
switch (status_playing_)
|
||||
switch (playing_state_)
|
||||
{
|
||||
case PlayerStatus::PLAYING:
|
||||
case PlayerState::PLAYING:
|
||||
{
|
||||
setInputPlaying(input);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::ENTERING_NAME:
|
||||
{
|
||||
setInputEnteringName(input);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::ENTERING_NAME_GAME_COMPLETED:
|
||||
case PlayerState::ENTERING_NAME:
|
||||
case PlayerState::ENTERING_NAME_GAME_COMPLETED:
|
||||
{
|
||||
setInputEnteringName(input);
|
||||
break;
|
||||
@@ -100,34 +96,34 @@ void Player::setInputPlaying(InputType input)
|
||||
case InputType::LEFT:
|
||||
{
|
||||
vel_x_ = -BASE_SPEED_;
|
||||
setWalkingStatus(PlayerStatus::WALKING_LEFT);
|
||||
setWalkingState(PlayerState::WALKING_LEFT);
|
||||
break;
|
||||
}
|
||||
case InputType::RIGHT:
|
||||
{
|
||||
vel_x_ = BASE_SPEED_;
|
||||
setWalkingStatus(PlayerStatus::WALKING_RIGHT);
|
||||
setWalkingState(PlayerState::WALKING_RIGHT);
|
||||
break;
|
||||
}
|
||||
case InputType::FIRE_CENTER:
|
||||
{
|
||||
setFiringStatus(PlayerStatus::FIRING_UP);
|
||||
setFiringState(PlayerState::FIRING_UP);
|
||||
break;
|
||||
}
|
||||
case InputType::FIRE_LEFT:
|
||||
{
|
||||
setFiringStatus(PlayerStatus::FIRING_LEFT);
|
||||
setFiringState(PlayerState::FIRING_LEFT);
|
||||
break;
|
||||
}
|
||||
case InputType::FIRE_RIGHT:
|
||||
{
|
||||
setFiringStatus(PlayerStatus::FIRING_RIGHT);
|
||||
setFiringState(PlayerState::FIRING_RIGHT);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
vel_x_ = 0;
|
||||
setWalkingStatus(PlayerStatus::WALKING_STOP);
|
||||
setWalkingState(PlayerState::WALKING_STOP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -162,9 +158,9 @@ void Player::setInputEnteringName(InputType input)
|
||||
// Mueve el jugador a la posición y animación que le corresponde
|
||||
void Player::move()
|
||||
{
|
||||
switch (status_playing_)
|
||||
switch (playing_state_)
|
||||
{
|
||||
case PlayerStatus::PLAYING:
|
||||
case PlayerState::PLAYING:
|
||||
{
|
||||
// Mueve el jugador a derecha o izquierda
|
||||
pos_x_ += vel_x_;
|
||||
@@ -177,7 +173,7 @@ void Player::move()
|
||||
shiftSprite();
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::DYING:
|
||||
case PlayerState::DYING:
|
||||
{
|
||||
// Si el cadaver abandona el area de juego por los laterales lo hace rebotar
|
||||
if ((player_sprite_->getPosX() < param.game.play_area.rect.x) || (player_sprite_->getPosX() + WIDTH_ > play_area_.w))
|
||||
@@ -185,10 +181,10 @@ void Player::move()
|
||||
|
||||
// Si el cadaver abandona el area de juego por abajo
|
||||
if (player_sprite_->getPosY() > param.game.play_area.rect.h)
|
||||
setStatusPlaying(PlayerStatus::DIED);
|
||||
setPlayingState(PlayerState::DIED);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::GAME_COMPLETED:
|
||||
case PlayerState::GAME_COMPLETED:
|
||||
{
|
||||
switch (id_)
|
||||
{
|
||||
@@ -208,7 +204,7 @@ void Player::move()
|
||||
shiftSprite();
|
||||
|
||||
if (pos_x_ == min_x || pos_x_ == max_x)
|
||||
setStatusPlaying(PlayerStatus::GAME_OVER);
|
||||
setPlayingState(PlayerState::GAME_OVER);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -227,28 +223,22 @@ void Player::render()
|
||||
player_sprite_->render();
|
||||
}
|
||||
|
||||
// Establece el estado del jugador cuando camina
|
||||
void Player::setWalkingStatus(PlayerStatus status) { status_walking_ = status; }
|
||||
|
||||
// Establece el estado del jugador cuando dispara
|
||||
void Player::setFiringStatus(PlayerStatus status) { status_firing_ = status; }
|
||||
|
||||
// Establece la animación correspondiente al estado
|
||||
void Player::setAnimation()
|
||||
{
|
||||
// Crea cadenas de texto para componer el nombre de la animación
|
||||
const std::string a_walking = status_walking_ == PlayerStatus::WALKING_STOP ? "stand" : "walk";
|
||||
const std::string a_firing = status_firing_ == PlayerStatus::FIRING_UP ? "centershoot" : "sideshoot";
|
||||
const std::string a_cooling = status_firing_ == PlayerStatus::COOLING_UP ? "centershoot" : "sideshoot";
|
||||
const std::string a_walking = walking_state_ == PlayerState::WALKING_STOP ? "stand" : "walk";
|
||||
const std::string a_firing = firing_state_ == PlayerState::FIRING_UP ? "centershoot" : "sideshoot";
|
||||
const std::string a_cooling = firing_state_ == PlayerState::COOLING_UP ? "centershoot" : "sideshoot";
|
||||
|
||||
const SDL_RendererFlip flip_walk = status_walking_ == PlayerStatus::WALKING_RIGHT ? SDL_FLIP_HORIZONTAL : SDL_FLIP_NONE;
|
||||
const SDL_RendererFlip flip_fire = status_firing_ == PlayerStatus::FIRING_RIGHT ? SDL_FLIP_HORIZONTAL : SDL_FLIP_NONE;
|
||||
const SDL_RendererFlip flip_cooling = status_firing_ == PlayerStatus::COOLING_RIGHT ? SDL_FLIP_HORIZONTAL : SDL_FLIP_NONE;
|
||||
const SDL_RendererFlip flip_walk = walking_state_ == PlayerState::WALKING_RIGHT ? SDL_FLIP_HORIZONTAL : SDL_FLIP_NONE;
|
||||
const SDL_RendererFlip flip_fire = firing_state_ == PlayerState::FIRING_RIGHT ? SDL_FLIP_HORIZONTAL : SDL_FLIP_NONE;
|
||||
const SDL_RendererFlip flip_cooling = firing_state_ == PlayerState::COOLING_RIGHT ? SDL_FLIP_HORIZONTAL : SDL_FLIP_NONE;
|
||||
|
||||
// Establece la animación a partir de las cadenas
|
||||
if (isPlaying() || isEnteringNameGameCompleted() || isGameCompleted())
|
||||
{
|
||||
if (status_firing_ == PlayerStatus::FIRING_NONE)
|
||||
if (firing_state_ == PlayerState::FIRING_NONE)
|
||||
{ // No esta disparando
|
||||
player_sprite_->setCurrentAnimation(a_walking);
|
||||
player_sprite_->setFlip(flip_walk);
|
||||
@@ -266,34 +256,20 @@ void Player::setAnimation()
|
||||
player_sprite_->setFlip(a_firing == "centershoot" ? flip_walk : flip_fire);
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (isDying() || hasDied())
|
||||
{
|
||||
player_sprite_->setCurrentAnimation("death");
|
||||
}
|
||||
else if (isCelebrating())
|
||||
{
|
||||
player_sprite_->setCurrentAnimation("celebration");
|
||||
}
|
||||
|
||||
// Actualiza las animaciones de los sprites
|
||||
player_sprite_->update(); // Hace avanzar las animaciones y mueve el cadaver del jugador
|
||||
power_sprite_->update();
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Player::getPosX() const { return static_cast<int>(pos_x_); }
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Player::getPosY() const { return pos_y_; }
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Player::getWidth() const { return WIDTH_; }
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Player::getHeight() const { return HEIGHT_; }
|
||||
|
||||
// Indica si el jugador puede disparar
|
||||
bool Player::canFire() const { return cooldown_ > 0 ? false : true; }
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Player::setFireCooldown(int time) { cooldown_ = time; }
|
||||
|
||||
// Actualiza el valor de la variable
|
||||
void Player::updateCooldown()
|
||||
{
|
||||
@@ -306,16 +282,16 @@ void Player::updateCooldown()
|
||||
if (!isCooling())
|
||||
{
|
||||
cooling_status_counter_ = 40;
|
||||
switch (status_firing_)
|
||||
switch (firing_state_)
|
||||
{
|
||||
case PlayerStatus::FIRING_LEFT:
|
||||
status_firing_ = PlayerStatus::COOLING_LEFT;
|
||||
case PlayerState::FIRING_LEFT:
|
||||
firing_state_ = PlayerState::COOLING_LEFT;
|
||||
break;
|
||||
case PlayerStatus::FIRING_RIGHT:
|
||||
status_firing_ = PlayerStatus::COOLING_RIGHT;
|
||||
case PlayerState::FIRING_RIGHT:
|
||||
firing_state_ = PlayerState::COOLING_RIGHT;
|
||||
break;
|
||||
case PlayerStatus::FIRING_UP:
|
||||
status_firing_ = PlayerStatus::COOLING_UP;
|
||||
case PlayerState::FIRING_UP:
|
||||
firing_state_ = PlayerState::COOLING_UP;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -327,7 +303,7 @@ void Player::updateCooldown()
|
||||
}
|
||||
else
|
||||
{
|
||||
setFiringStatus(PlayerStatus::FIRING_NONE);
|
||||
setFiringState(PlayerState::FIRING_NONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -346,12 +322,6 @@ void Player::update()
|
||||
updateScoreboard();
|
||||
}
|
||||
|
||||
// Obtiene la puntuación del jugador
|
||||
int Player::getScore() const { return score_; }
|
||||
|
||||
// Asigna un valor a la puntuación del jugador
|
||||
void Player::setScore(int score) { score_ = score; }
|
||||
|
||||
// Incrementa la puntuación del jugador
|
||||
void Player::addScore(int score)
|
||||
{
|
||||
@@ -361,50 +331,18 @@ void Player::addScore(int score)
|
||||
}
|
||||
}
|
||||
|
||||
// Indica si el jugador está jugando
|
||||
bool Player::isPlaying() const { return status_playing_ == PlayerStatus::PLAYING; }
|
||||
|
||||
// Indica si el jugador está continuando
|
||||
bool Player::isContinue() const { return status_playing_ == PlayerStatus::CONTINUE; }
|
||||
|
||||
// Indica si el jugador está esperando
|
||||
bool Player::isWaiting() const { return status_playing_ == PlayerStatus::WAITING; }
|
||||
|
||||
// Indica si el jugador está introduciendo su nombre
|
||||
bool Player::isEnteringName() const { return status_playing_ == PlayerStatus::ENTERING_NAME; }
|
||||
|
||||
// Indica si el jugador está muriendose
|
||||
bool Player::isDying() const { return status_playing_ == PlayerStatus::DYING; }
|
||||
|
||||
// Indica si el jugador ha terminado de morir
|
||||
bool Player::hasDied() const { return status_playing_ == PlayerStatus::DIED; }
|
||||
|
||||
// Indica si el jugador ya ha terminado de jugar
|
||||
bool Player::isGameOver() const { return status_playing_ == PlayerStatus::GAME_OVER; }
|
||||
|
||||
// Indica si el jugador está introduciendo su nombre una vez ha completado el juego
|
||||
bool Player::isEnteringNameGameCompleted() const { return status_playing_ == PlayerStatus::ENTERING_NAME_GAME_COMPLETED; }
|
||||
|
||||
// Indica si el jugador ha completado el juego
|
||||
bool Player::isGameCompleted() const { return status_playing_ == PlayerStatus::GAME_COMPLETED; }
|
||||
|
||||
// Actualiza el panel del marcador
|
||||
void Player::updateScoreboard()
|
||||
{
|
||||
switch (status_playing_)
|
||||
switch (playing_state_)
|
||||
{
|
||||
case PlayerStatus::CONTINUE:
|
||||
case PlayerState::CONTINUE:
|
||||
{
|
||||
Scoreboard::get()->setContinue(getScoreBoardPanel(), getContinueCounter());
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::ENTERING_NAME:
|
||||
{
|
||||
Scoreboard::get()->setRecordName(getScoreBoardPanel(), getRecordName());
|
||||
Scoreboard::get()->setSelectorPos(getScoreBoardPanel(), getRecordNamePos());
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::ENTERING_NAME_GAME_COMPLETED:
|
||||
case PlayerState::ENTERING_NAME:
|
||||
case PlayerState::ENTERING_NAME_GAME_COMPLETED:
|
||||
{
|
||||
Scoreboard::get()->setRecordName(getScoreBoardPanel(), getRecordName());
|
||||
Scoreboard::get()->setSelectorPos(getScoreBoardPanel(), getRecordNamePos());
|
||||
@@ -425,20 +363,20 @@ void Player::setScoreboardMode(ScoreboardMode mode)
|
||||
}
|
||||
|
||||
// Establece el estado del jugador en el juego
|
||||
void Player::setStatusPlaying(PlayerStatus value)
|
||||
void Player::setPlayingState(PlayerState state)
|
||||
{
|
||||
status_playing_ = value;
|
||||
playing_state_ = state;
|
||||
|
||||
switch (status_playing_)
|
||||
switch (playing_state_)
|
||||
{
|
||||
case PlayerStatus::PLAYING:
|
||||
case PlayerState::PLAYING:
|
||||
{
|
||||
init();
|
||||
status_playing_ = PlayerStatus::PLAYING;
|
||||
playing_state_ = PlayerState::PLAYING;
|
||||
setScoreboardMode(ScoreboardMode::SCORE);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::CONTINUE:
|
||||
case PlayerState::CONTINUE:
|
||||
{
|
||||
// Inicializa el contador de continuar
|
||||
continue_ticks_ = SDL_GetTicks();
|
||||
@@ -447,17 +385,17 @@ void Player::setStatusPlaying(PlayerStatus value)
|
||||
setScoreboardMode(ScoreboardMode::CONTINUE);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::WAITING:
|
||||
case PlayerState::WAITING:
|
||||
{
|
||||
setScoreboardMode(ScoreboardMode::WAITING);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::ENTERING_NAME:
|
||||
case PlayerState::ENTERING_NAME:
|
||||
{
|
||||
setScoreboardMode(ScoreboardMode::ENTER_NAME);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::DYING:
|
||||
case PlayerState::DYING:
|
||||
{
|
||||
// Activa la animación de morir
|
||||
player_sprite_->setAccelY(0.2f);
|
||||
@@ -465,27 +403,32 @@ void Player::setStatusPlaying(PlayerStatus value)
|
||||
rand() % 2 == 0 ? player_sprite_->setVelX(3.3f) : player_sprite_->setVelX(-3.3f);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::DIED:
|
||||
case PlayerState::DIED:
|
||||
{
|
||||
const auto nextPlayerStatus = IsEligibleForHighScore() ? PlayerStatus::ENTERING_NAME : PlayerStatus::CONTINUE;
|
||||
demo_ ? setStatusPlaying(PlayerStatus::WAITING) : setStatusPlaying(nextPlayerStatus);
|
||||
const auto nextPlayerStatus = IsEligibleForHighScore() ? PlayerState::ENTERING_NAME : PlayerState::CONTINUE;
|
||||
demo_ ? setPlayingState(PlayerState::WAITING) : setPlayingState(nextPlayerStatus);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::GAME_OVER:
|
||||
case PlayerState::GAME_OVER:
|
||||
{
|
||||
setScoreboardMode(ScoreboardMode::GAME_OVER);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::ENTERING_NAME_GAME_COMPLETED:
|
||||
case PlayerState::CELEBRATING:
|
||||
{
|
||||
setWalkingStatus(PlayerStatus::WALKING_STOP);
|
||||
setFiringStatus(PlayerStatus::FIRING_NONE);
|
||||
setScoreboardMode(ScoreboardMode::SCORE);
|
||||
break;
|
||||
}
|
||||
case PlayerState::ENTERING_NAME_GAME_COMPLETED:
|
||||
{
|
||||
setWalkingState(PlayerState::WALKING_STOP);
|
||||
setFiringState(PlayerState::FIRING_NONE);
|
||||
setScoreboardMode(ScoreboardMode::ENTER_NAME);
|
||||
break;
|
||||
}
|
||||
case PlayerStatus::GAME_COMPLETED:
|
||||
case PlayerState::GAME_COMPLETED:
|
||||
{
|
||||
setScoreboardMode(ScoreboardMode::GAME_OVER);
|
||||
setScoreboardMode(ScoreboardMode::GAME_COMPLETED);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -493,15 +436,6 @@ void Player::setStatusPlaying(PlayerStatus value)
|
||||
}
|
||||
}
|
||||
|
||||
// Obtiene el estado del jugador en el juego
|
||||
PlayerStatus Player::getStatusPlaying() const { return status_playing_; }
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
float Player::getScoreMultiplier() const { return score_multiplier_; }
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Player::setScoreMultiplier(float value) { score_multiplier_ = value; }
|
||||
|
||||
// Aumenta el valor de la variable hasta un máximo
|
||||
void Player::incScoreMultiplier()
|
||||
{
|
||||
@@ -516,9 +450,6 @@ void Player::decScoreMultiplier()
|
||||
score_multiplier_ = std::max(score_multiplier_, 1.0f);
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
bool Player::isInvulnerable() const { return invulnerable_; }
|
||||
|
||||
// Establece el valor del estado
|
||||
void Player::setInvulnerable(bool value)
|
||||
{
|
||||
@@ -526,12 +457,6 @@ void Player::setInvulnerable(bool value)
|
||||
invulnerable_counter_ = invulnerable_ ? INVULNERABLE_COUNTER_ : 0;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Player::getInvulnerableCounter() const { return invulnerable_counter_; }
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Player::setInvulnerableCounter(int value) { invulnerable_counter_ = value; }
|
||||
|
||||
// Monitoriza el estado
|
||||
void Player::updateInvulnerable()
|
||||
{
|
||||
@@ -550,9 +475,6 @@ void Player::updateInvulnerable()
|
||||
}
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
bool Player::isPowerUp() const { return power_up_; }
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Player::setPowerUp()
|
||||
{
|
||||
@@ -560,12 +482,6 @@ void Player::setPowerUp()
|
||||
power_up_counter_ = POWERUP_COUNTER_;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Player::getPowerUpCounter() const { return power_up_counter_; }
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Player::setPowerUpCounter(int value) { power_up_counter_ = value; }
|
||||
|
||||
// Actualiza el valor de la variable
|
||||
void Player::updatePowerUp()
|
||||
{
|
||||
@@ -576,9 +492,6 @@ void Player::updatePowerUp()
|
||||
}
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
bool Player::hasExtraHit() const { return extra_hit_; }
|
||||
|
||||
// Concede un toque extra al jugador
|
||||
void Player::giveExtraHit()
|
||||
{
|
||||
@@ -603,12 +516,6 @@ void Player::removeExtraHit()
|
||||
extra_hit_ = coffees_ == 0 ? false : true;
|
||||
}
|
||||
|
||||
// Devuelve el número de cafes actuales
|
||||
int Player::getCoffees() const { return coffees_; }
|
||||
|
||||
// Obtiene el circulo de colisión
|
||||
Circle &Player::getCollider() { return collider_; }
|
||||
|
||||
// Actualiza el circulo de colisión a la posición del jugador
|
||||
void Player::shiftColliders()
|
||||
{
|
||||
@@ -623,13 +530,10 @@ void Player::setPlayerTextures(const std::vector<std::shared_ptr<Texture>> &text
|
||||
power_sprite_->setTexture(texture[1]);
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Player::getContinueCounter() const { return continue_counter_; }
|
||||
|
||||
// Actualiza el contador de continue
|
||||
void Player::updateContinueCounter()
|
||||
{
|
||||
if (status_playing_ == PlayerStatus::CONTINUE)
|
||||
if (playing_state_ == PlayerState::CONTINUE)
|
||||
{
|
||||
constexpr int TICKS_SPEED = 1000;
|
||||
if (SDL_GetTicks() - continue_ticks_ > TICKS_SPEED)
|
||||
@@ -642,7 +546,7 @@ void Player::updateContinueCounter()
|
||||
// Actualiza el contador de entrar nombre
|
||||
void Player::updateEnterNameCounter()
|
||||
{
|
||||
if (status_playing_ == PlayerStatus::ENTERING_NAME || status_playing_ == PlayerStatus::ENTERING_NAME_GAME_COMPLETED)
|
||||
if (playing_state_ == PlayerState::ENTERING_NAME || playing_state_ == PlayerState::ENTERING_NAME_GAME_COMPLETED)
|
||||
{
|
||||
constexpr int TICKS_SPEED = 1000;
|
||||
if (SDL_GetTicks() - enter_name_ticks_ > TICKS_SPEED)
|
||||
@@ -652,12 +556,6 @@ void Player::updateEnterNameCounter()
|
||||
}
|
||||
}
|
||||
|
||||
// Le asigna un panel en el marcador al jugador
|
||||
void Player::setScoreBoardPanel(int panel) { scoreboard_panel_ = panel; }
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Player::getScoreBoardPanel() const { return scoreboard_panel_; }
|
||||
|
||||
// Decrementa el contador de continuar
|
||||
void Player::decContinueCounter()
|
||||
{
|
||||
@@ -665,7 +563,7 @@ void Player::decContinueCounter()
|
||||
--continue_counter_;
|
||||
if (continue_counter_ < 0)
|
||||
{
|
||||
setStatusPlaying(PlayerStatus::GAME_OVER);
|
||||
setPlayingState(PlayerState::GAME_OVER);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -677,23 +575,14 @@ void Player::decEnterNameCounter()
|
||||
if (enter_name_counter_ < 0)
|
||||
{
|
||||
enter_name_counter_ = param.game.enter_name_seconds;
|
||||
setStatusPlaying(PlayerStatus::CONTINUE);
|
||||
if (playing_state_ == PlayerState::ENTERING_NAME)
|
||||
setPlayingState(PlayerState::CONTINUE);
|
||||
else
|
||||
setPlayingState(PlayerState::GAME_COMPLETED);
|
||||
}
|
||||
}
|
||||
|
||||
// Establece el nombre del jugador
|
||||
void Player::setName(const std::string &name) { name_ = name; }
|
||||
|
||||
// Establece el nombre del jugador para la tabla de mejores puntuaciones
|
||||
void Player::setRecordName(const std::string &record_name) { record_name_ = record_name.substr(0, 8); }
|
||||
|
||||
// Obtiene el nombre del jugador
|
||||
std::string Player::getName() const { return name_; }
|
||||
|
||||
// Obtiene el nombre del jugador para la tabla de mejores puntuaciones
|
||||
std::string Player::getRecordName() const { return record_name_; }
|
||||
|
||||
// Obtiene la posici´´on que se está editando del nombre del jugador para la tabla de mejores puntuaciones
|
||||
// Obtiene la posición que se está editando del nombre del jugador para la tabla de mejores puntuaciones
|
||||
int Player::getRecordNamePos() const
|
||||
{
|
||||
if (enter_name_)
|
||||
@@ -702,21 +591,6 @@ int Player::getRecordNamePos() const
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Establece el mando que usará para ser controlado
|
||||
void Player::setController(int index) { controller_index_ = index; }
|
||||
|
||||
// Obtiene el mando que usa para ser controlado
|
||||
int Player::getController() const { return controller_index_; }
|
||||
|
||||
// Obtiene el "id" del jugador
|
||||
int Player::getId() const { return id_; }
|
||||
|
||||
// Indica si el jugador se puede dibujar
|
||||
bool Player::isRenderable() const { return isPlaying() || isDying() || isEnteringNameGameCompleted() || isGameCompleted(); }
|
||||
|
||||
// Comprueba si la puntuación entra en la tabla de mejores puntuaciones
|
||||
bool Player::IsEligibleForHighScore() { return score_ > options.game.hi_score_table.back().score; }
|
||||
|
||||
// Recoloca los sprites
|
||||
void Player::shiftSprite()
|
||||
{
|
||||
@@ -725,4 +599,48 @@ void Player::shiftSprite()
|
||||
power_sprite_->setPosX(getPosX() - power_up_desp_x_);
|
||||
}
|
||||
|
||||
bool Player::isCooling() { return status_firing_ == PlayerStatus::COOLING_LEFT || status_firing_ == PlayerStatus::COOLING_UP || status_firing_ == PlayerStatus::COOLING_RIGHT; }
|
||||
int Player::getScore() const { return score_; }
|
||||
void Player::setScore(int score) { score_ = score; }
|
||||
PlayerState Player::getPlayingState() const { return playing_state_; }
|
||||
float Player::getScoreMultiplier() const { return score_multiplier_; }
|
||||
void Player::setScoreMultiplier(float value) { score_multiplier_ = value; }
|
||||
bool Player::isInvulnerable() const { return invulnerable_; }
|
||||
int Player::getInvulnerableCounter() const { return invulnerable_counter_; }
|
||||
void Player::setInvulnerableCounter(int value) { invulnerable_counter_ = value; }
|
||||
bool Player::isPowerUp() const { return power_up_; }
|
||||
int Player::getPowerUpCounter() const { return power_up_counter_; }
|
||||
void Player::setPowerUpCounter(int value) { power_up_counter_ = value; }
|
||||
bool Player::hasExtraHit() const { return extra_hit_; }
|
||||
void Player::setScoreBoardPanel(int panel) { scoreboard_panel_ = panel; }
|
||||
int Player::getScoreBoardPanel() const { return scoreboard_panel_; }
|
||||
int Player::getCoffees() const { return coffees_; }
|
||||
Circle &Player::getCollider() { return collider_; }
|
||||
int Player::getContinueCounter() const { return continue_counter_; }
|
||||
void Player::setName(const std::string &name) { name_ = name; }
|
||||
void Player::setRecordName(const std::string &record_name) { record_name_ = record_name.substr(0, 8); }
|
||||
std::string Player::getName() const { return name_; }
|
||||
std::string Player::getRecordName() const { return record_name_; }
|
||||
void Player::setController(int index) { controller_index_ = index; }
|
||||
int Player::getController() const { return controller_index_; }
|
||||
int Player::getId() const { return id_; }
|
||||
bool Player::isRenderable() const { return isPlaying() || isDying() || isCelebrating() || isEnteringNameGameCompleted() || isGameCompleted(); }
|
||||
bool Player::IsEligibleForHighScore() { return score_ > options.game.hi_score_table.back().score; }
|
||||
bool Player::isCooling() { return firing_state_ == PlayerState::COOLING_LEFT || firing_state_ == PlayerState::COOLING_UP || firing_state_ == PlayerState::COOLING_RIGHT; }
|
||||
int Player::getPosX() const { return static_cast<int>(pos_x_); }
|
||||
int Player::getPosY() const { return pos_y_; }
|
||||
int Player::getWidth() const { return WIDTH_; }
|
||||
int Player::getHeight() const { return HEIGHT_; }
|
||||
bool Player::canFire() const { return cooldown_ > 0 ? false : true; }
|
||||
void Player::setFireCooldown(int time) { cooldown_ = time; }
|
||||
void Player::setWalkingState(PlayerState state) { walking_state_ = state; }
|
||||
void Player::setFiringState(PlayerState state) { firing_state_ = state; }
|
||||
bool Player::isPlaying() const { return playing_state_ == PlayerState::PLAYING; }
|
||||
bool Player::isContinue() const { return playing_state_ == PlayerState::CONTINUE; }
|
||||
bool Player::isWaiting() const { return playing_state_ == PlayerState::WAITING; }
|
||||
bool Player::isEnteringName() const { return playing_state_ == PlayerState::ENTERING_NAME; }
|
||||
bool Player::isDying() const { return playing_state_ == PlayerState::DYING; }
|
||||
bool Player::hasDied() const { return playing_state_ == PlayerState::DIED; }
|
||||
bool Player::isGameOver() const { return playing_state_ == PlayerState::GAME_OVER; }
|
||||
bool Player::isEnteringNameGameCompleted() const { return playing_state_ == PlayerState::ENTERING_NAME_GAME_COMPLETED; }
|
||||
bool Player::isGameCompleted() const { return playing_state_ == PlayerState::GAME_COMPLETED; }
|
||||
bool Player::isCelebrating() const { return playing_state_ == PlayerState::CELEBRATING; }
|
||||
Reference in New Issue
Block a user