Arreglada la animació de morir, que s'updatava dos voltes per frame
This commit is contained in:
@@ -45,7 +45,7 @@ frames=20,21,22,23
|
|||||||
|
|
||||||
[animation]
|
[animation]
|
||||||
name=death
|
name=death
|
||||||
speed=15
|
speed=10
|
||||||
loop=0
|
loop=0
|
||||||
frames=24,25,26,27
|
frames=24,25,26,27
|
||||||
[/animation]
|
[/animation]
|
||||||
@@ -175,39 +175,27 @@ void Player::move()
|
|||||||
// Mueve el jugador a derecha o izquierda
|
// Mueve el jugador a derecha o izquierda
|
||||||
pos_x_ += vel_x_;
|
pos_x_ += vel_x_;
|
||||||
|
|
||||||
// Si el jugador abandona el area de juego por los laterales
|
// Si el jugador abandona el area de juego por los laterales, restaura su posición
|
||||||
if ((pos_x_ < param.game.play_area.rect.x - 5) || (pos_x_ + WIDTH_ > play_area_.w + 5))
|
const float min_x = param.game.play_area.rect.x - 5;
|
||||||
{
|
const float max_x = play_area_.w + 5 - WIDTH_;
|
||||||
// Restaura su posición
|
if ((pos_x_ < min_x) || (pos_x_ > max_x))
|
||||||
pos_x_ -= vel_x_;
|
pos_x_ = std::clamp(pos_x_, min_x, max_x);
|
||||||
}
|
|
||||||
|
|
||||||
// Actualiza la posición del sprite
|
// Actualiza la posición del sprite
|
||||||
player_sprite_->setPosX(getPosX());
|
player_sprite_->setPosX(pos_x_);
|
||||||
player_sprite_->setPosY(pos_y_);
|
player_sprite_->setPosY(pos_y_);
|
||||||
|
|
||||||
power_sprite_->setPosX(getPosX() - power_up_desp_x_);
|
power_sprite_->setPosX(getPosX() - power_up_desp_x_);
|
||||||
}
|
}
|
||||||
else if (isDying())
|
else if (isDying())
|
||||||
{
|
{
|
||||||
player_sprite_->update();
|
// Si el cadaver abandona el area de juego por los laterales lo hace rebotar
|
||||||
|
|
||||||
// Si el cadaver abandona el area de juego por los laterales
|
|
||||||
if ((player_sprite_->getPosX() < param.game.play_area.rect.x) || (player_sprite_->getPosX() + WIDTH_ > play_area_.w))
|
if ((player_sprite_->getPosX() < param.game.play_area.rect.x) || (player_sprite_->getPosX() + WIDTH_ > play_area_.w))
|
||||||
{
|
player_sprite_->setVelX(-player_sprite_->getVelX());
|
||||||
// Restaura su posición
|
|
||||||
const float vx = player_sprite_->getVelX();
|
|
||||||
player_sprite_->setPosX(player_sprite_->getPosX() - vx);
|
|
||||||
|
|
||||||
// Rebota
|
|
||||||
player_sprite_->setVelX(-vx);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Si el cadaver abandona el area de juego por abajo
|
// Si el cadaver abandona el area de juego por abajo
|
||||||
if (player_sprite_->getPosY() > param.game.play_area.rect.h)
|
if (player_sprite_->getPosY() > param.game.play_area.rect.h)
|
||||||
{
|
|
||||||
setStatusPlaying(PlayerStatus::DIED);
|
setStatusPlaying(PlayerStatus::DIED);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,12 +203,8 @@ void Player::move()
|
|||||||
void Player::render()
|
void Player::render()
|
||||||
{
|
{
|
||||||
if (power_up_ && isPlaying())
|
if (power_up_ && isPlaying())
|
||||||
{
|
|
||||||
if (power_up_counter_ > (POWERUP_COUNTER_ / 4) || power_up_counter_ % 20 > 4)
|
if (power_up_counter_ > (POWERUP_COUNTER_ / 4) || power_up_counter_ % 20 > 4)
|
||||||
{
|
|
||||||
power_sprite_->render();
|
power_sprite_->render();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isRenderable())
|
if (isRenderable())
|
||||||
player_sprite_->render();
|
player_sprite_->render();
|
||||||
@@ -270,16 +254,14 @@ void Player::setAnimation()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Actualiza las animaciones de los sprites
|
// Actualiza las animaciones de los sprites
|
||||||
player_sprite_->update();
|
player_sprite_->update(); // Hace avanzar las animaciones y mueve el cadaver del jugador
|
||||||
|
|
||||||
// powerSprite->setFlip(flip_walk);
|
|
||||||
power_sprite_->update();
|
power_sprite_->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
int Player::getPosX() const
|
int Player::getPosX() const
|
||||||
{
|
{
|
||||||
return int(pos_x_);
|
return static_cast<int>(pos_x_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
|
|||||||
Reference in New Issue
Block a user