fix: el tamany del jugador no s'havia muntat de 30 a 32
fix: al aumentar el tamany del jugador, ja no eixia rodant pels aires perque estava "estacat en terra" fix: arreglats els estats dels jugadors per a que quan reentres a la partida, entre desde la vora com al principi fix: pensava que en enviar jugadors DAVANT en el eix Z sobrava, pero també necesite poder enviarlos DARRERE
This commit is contained in:
@@ -33,8 +33,6 @@ Player::Player(int id, float x, int y, bool demo, SDL_FRect &play_area, std::vec
|
||||
|
||||
// Inicializa variables
|
||||
pos_x_ = default_pos_x_;
|
||||
invulnerable_ = false;
|
||||
invulnerable_counter_ = 0;
|
||||
init();
|
||||
}
|
||||
|
||||
@@ -44,6 +42,8 @@ void Player::init() {
|
||||
pos_y_ = default_pos_y_;
|
||||
walking_state_ = State::WALKING_STOP;
|
||||
firing_state_ = State::FIRING_NONE;
|
||||
invulnerable_ = false;
|
||||
invulnerable_counter_ = 0;
|
||||
power_up_ = false;
|
||||
power_up_counter_ = POWERUP_COUNTER;
|
||||
extra_hit_ = false;
|
||||
@@ -66,7 +66,7 @@ void Player::init() {
|
||||
shiftSprite();
|
||||
|
||||
// Selecciona un frame para pintar
|
||||
player_sprite_->setCurrentAnimation("stand");
|
||||
//player_sprite_->setCurrentAnimation("stand");
|
||||
}
|
||||
|
||||
// Actua en consecuencia de la entrada recibida
|
||||
@@ -209,6 +209,8 @@ void Player::handleRollingGroundCollision() {
|
||||
return;
|
||||
}
|
||||
|
||||
// const float VEL_Y = player_sprite_->getVelY();
|
||||
// if (VEL_Y >= 0.0F && VEL_Y < 2.0F) {
|
||||
if (player_sprite_->getVelY() < 2.0F) {
|
||||
handleRollingStop();
|
||||
} else {
|
||||
@@ -218,7 +220,6 @@ void Player::handleRollingGroundCollision() {
|
||||
|
||||
void Player::handleRollingStop() {
|
||||
const auto NEXT_PLAYER_STATUS = isEligibleForHighScore() ? State::ENTERING_NAME : State::CONTINUE;
|
||||
|
||||
const auto NEXT_STATE = demo_ ? State::LYING_ON_THE_FLOOR_FOREVER : NEXT_PLAYER_STATUS;
|
||||
|
||||
setPlayingState(NEXT_STATE);
|
||||
@@ -291,7 +292,7 @@ void Player::handlePlayer1Entering() {
|
||||
pos_x_ += vel_x_;
|
||||
if (pos_x_ > default_pos_x_) {
|
||||
pos_x_ = default_pos_x_;
|
||||
setPlayingState(State::RESPAWNING);
|
||||
setPlayingState(State::PLAYING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -300,7 +301,7 @@ void Player::handlePlayer2Entering() {
|
||||
pos_x_ += vel_x_;
|
||||
if (pos_x_ < default_pos_x_) {
|
||||
pos_x_ = default_pos_x_;
|
||||
setPlayingState(State::RESPAWNING);
|
||||
setPlayingState(State::PLAYING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -588,14 +589,14 @@ void Player::setPlayingState(State state) {
|
||||
|
||||
switch (playing_state_) {
|
||||
case State::RESPAWNING: {
|
||||
setInvulnerable(true);
|
||||
addCredit();
|
||||
playSound("voice_thankyou.wav");
|
||||
setPlayingState(State::PLAYING);
|
||||
setInvulnerable(true);
|
||||
break;
|
||||
}
|
||||
case State::PLAYING: {
|
||||
init();
|
||||
playing_state_ = State::PLAYING;
|
||||
setInvulnerable(true);
|
||||
setScoreboardMode(Scoreboard::Mode::SCORE);
|
||||
Stage::power_can_be_added = true;
|
||||
break;
|
||||
@@ -604,8 +605,8 @@ void Player::setPlayingState(State state) {
|
||||
// Inicializa el contador de continuar
|
||||
continue_ticks_ = SDL_GetTicks();
|
||||
continue_counter_ = 9;
|
||||
setScoreboardMode(Scoreboard::Mode::CONTINUE);
|
||||
playSound("continue_clock.wav");
|
||||
setScoreboardMode(Scoreboard::Mode::CONTINUE);
|
||||
break;
|
||||
}
|
||||
case State::WAITING: {
|
||||
@@ -640,11 +641,12 @@ void Player::setPlayingState(State state) {
|
||||
break;
|
||||
}
|
||||
case State::ROLLING: {
|
||||
// Activa la animación de rodar
|
||||
// Activa la animación de rodar dando botes
|
||||
player_sprite_->setCurrentAnimation("rolling");
|
||||
player_sprite_->setAnimationSpeed(4);
|
||||
player_sprite_->setAccelY(0.2F);
|
||||
player_sprite_->setVelY(-6.6F);
|
||||
player_sprite_->setVelY(-6.6F); // Velocidad inicial
|
||||
player_sprite_->setAccelY(0.2F); // Gravedad
|
||||
player_sprite_->setPosY(pos_y_ - 2); // Para "sacarlo" del suelo, ya que está hundido un pixel para ocultar el outline de los pies
|
||||
(rand() % 2 == 0) ? player_sprite_->setVelX(3.3F) : player_sprite_->setVelX(-3.3F);
|
||||
break;
|
||||
}
|
||||
@@ -660,7 +662,7 @@ void Player::setPlayingState(State state) {
|
||||
break;
|
||||
}
|
||||
case State::CONTINUE_TIME_OUT: {
|
||||
// Activa la animación de morir
|
||||
// Activa la animación de sacar al jugador de la zona de juego
|
||||
player_sprite_->setAccelY(0.2F);
|
||||
player_sprite_->setVelY(-4.0F);
|
||||
player_sprite_->setVelX(0.0F);
|
||||
@@ -692,6 +694,7 @@ void Player::setPlayingState(State state) {
|
||||
break;
|
||||
}
|
||||
case State::ENTERING_SCREEN: {
|
||||
init();
|
||||
step_counter_ = 0;
|
||||
setScoreboardMode(Scoreboard::Mode::SCORE);
|
||||
switch (id_) {
|
||||
|
||||
Reference in New Issue
Block a user