Arreglada la animacion de morir. Ya no se usan smartsprites
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
#include "player.h"
|
||||
|
||||
// Constructor
|
||||
Player::Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> texture, std::vector<std::vector<std::string>*> animations)
|
||||
Player::Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> texture, std::vector<std::vector<std::string> *> animations)
|
||||
{
|
||||
// Copia los punteros
|
||||
this->renderer = renderer;
|
||||
@@ -131,7 +131,9 @@ void Player::move()
|
||||
|
||||
// Si el jugador abandona el area de juego por los laterales
|
||||
if ((posX < PLAY_AREA_LEFT - 5) || (posX + width > PLAY_AREA_RIGHT + 5))
|
||||
posX -= velX; // Restaura su posición
|
||||
{ // Restaura su posición
|
||||
posX -= velX;
|
||||
}
|
||||
|
||||
// Actualiza la posición del sprite
|
||||
legsSprite->setPosX(getPosX());
|
||||
@@ -143,6 +145,20 @@ void Player::move()
|
||||
headSprite->setPosX(getPosX());
|
||||
headSprite->setPosY(posY);
|
||||
}
|
||||
else
|
||||
{
|
||||
deathSprite->update();
|
||||
|
||||
// Si el cadaver abandona el area de juego por los laterales
|
||||
if ((deathSprite->getPosX() < PLAY_AREA_LEFT) || (deathSprite->getPosX() + width > PLAY_AREA_RIGHT))
|
||||
{ // Restaura su posición
|
||||
const float vx = deathSprite->getVelX();
|
||||
deathSprite->setPosX(deathSprite->getPosX() - vx);
|
||||
|
||||
// Rebota
|
||||
deathSprite->setVelX(-vx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Pinta el jugador en pantalla
|
||||
@@ -166,6 +182,10 @@ void Player::render()
|
||||
headSprite->render();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
deathSprite->render();
|
||||
}
|
||||
}
|
||||
|
||||
// Establece el estado del jugador cuando camina
|
||||
@@ -186,8 +206,6 @@ void Player::setFiringStatus(Uint8 status)
|
||||
if (statusFiring != status)
|
||||
{
|
||||
statusFiring = status;
|
||||
// bodySprite->setCurrentFrame(0);
|
||||
// headSprite->setCurrentFrame(0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,7 +235,7 @@ void Player::setAnimation()
|
||||
{ // No esta disparando
|
||||
bodySprite->setCurrentAnimation(aWalking + aBodyCoffees);
|
||||
bodySprite->setFlip(flipWalk);
|
||||
headSprite->setCurrentAnimation(aWalking + aHeadCoffees+ aPowerUp);
|
||||
headSprite->setCurrentAnimation(aWalking + aHeadCoffees + aPowerUp);
|
||||
headSprite->setFlip(flipWalk);
|
||||
}
|
||||
else
|
||||
@@ -336,6 +354,18 @@ bool Player::isAlive()
|
||||
void Player::setAlive(bool value)
|
||||
{
|
||||
alive = value;
|
||||
|
||||
if (!value)
|
||||
{
|
||||
deathSprite->setPos(headSprite->getRect());
|
||||
deathSprite->setAccelY(0.2f);
|
||||
deathSprite->setVelY(-6.6f);
|
||||
deathSprite->setVelX(3.3f);
|
||||
if (rand() % 2 == 0)
|
||||
{
|
||||
deathSprite->setVelX(-3.3f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
@@ -533,7 +563,8 @@ void Player::shiftColliders()
|
||||
// Obtiene el puntero a la textura con los gráficos de la animación de morir
|
||||
LTexture *Player::getDeadTexture()
|
||||
{
|
||||
return deathSprite->getTexture();;
|
||||
return deathSprite->getTexture();
|
||||
;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
@@ -547,20 +578,20 @@ void Player::updatePowerUpHeadOffset()
|
||||
{
|
||||
if (!powerUp)
|
||||
{
|
||||
//powerUpHeadOffset = 0;
|
||||
// powerUpHeadOffset = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
//powerUpHeadOffset = 96;
|
||||
// powerUpHeadOffset = 96;
|
||||
if (powerUpCounter < 300)
|
||||
{
|
||||
if (powerUpCounter % 10 > 4)
|
||||
{
|
||||
//powerUpHeadOffset = 96;
|
||||
// powerUpHeadOffset = 96;
|
||||
}
|
||||
else
|
||||
{
|
||||
//powerUpHeadOffset = 0;
|
||||
// powerUpHeadOffset = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user