fix: la inmunitat del jugador no funcionava
This commit is contained in:
@@ -311,16 +311,16 @@ void Game::init(int playerID)
|
|||||||
players[otherPlayer - 1]->enable(true);
|
players[otherPlayer - 1]->enable(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Añade 0, 1 o 2 cafes al jugador 1
|
for (auto player : players)
|
||||||
for (int i = 0; i < rand() % 3; ++i)
|
|
||||||
{
|
{
|
||||||
players[0]->giveExtraHit();
|
// Añade 0, 1 o 2 cafes al jugador
|
||||||
}
|
for (int i = 0; i < rand() % 3; ++i)
|
||||||
|
{
|
||||||
|
player->giveExtraHit();
|
||||||
|
}
|
||||||
|
|
||||||
// Añade 0, 1 o 2 cafes al jugador 2
|
// Empieza sin inmunidad
|
||||||
for (int i = 0; i < rand() % 3; ++i)
|
player->setInvulnerable(false);
|
||||||
{
|
|
||||||
players[1]->giveExtraHit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deshabilita los sonidos
|
// Deshabilita los sonidos
|
||||||
@@ -2453,7 +2453,7 @@ void Game::renderSmartSprites()
|
|||||||
// Acciones a realizar cuando el jugador muere
|
// Acciones a realizar cuando el jugador muere
|
||||||
void Game::killPlayer(Player *player)
|
void Game::killPlayer(Player *player)
|
||||||
{
|
{
|
||||||
if (!player->isEnabled() && player->isInvulnerable())
|
if (!player->isEnabled() || player->isInvulnerable())
|
||||||
{ // Si no está habilitado o tiene inmunidad, no hace nada
|
{ // Si no está habilitado o tiene inmunidad, no hace nada
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -281,11 +281,7 @@ void Player::update()
|
|||||||
shiftColliders();
|
shiftColliders();
|
||||||
updateCooldown();
|
updateCooldown();
|
||||||
updatePowerUpCounter();
|
updatePowerUpCounter();
|
||||||
updateInvulnerableCounter();
|
updateInvulnerable();
|
||||||
if (invulnerable)
|
|
||||||
{
|
|
||||||
invulnerableCounter % 8 > 3 ? playerSprite->getTexture()->setPalette(coffees) : playerSprite->getTexture()->setPalette(3);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene la puntuación del jugador
|
// Obtiene la puntuación del jugador
|
||||||
@@ -360,10 +356,11 @@ bool Player::isInvulnerable()
|
|||||||
return invulnerable;
|
return invulnerable;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Establece el valor de la variable
|
// Establece el valor del estado
|
||||||
void Player::setInvulnerable(bool value)
|
void Player::setInvulnerable(bool value)
|
||||||
{
|
{
|
||||||
invulnerable = value;
|
invulnerable = value;
|
||||||
|
invulnerableCounter = invulnerable ? PLAYER_INVULNERABLE_COUNTER : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
@@ -378,20 +375,20 @@ void Player::setInvulnerableCounter(int value)
|
|||||||
invulnerableCounter = value;
|
invulnerableCounter = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actualiza el valor de la variable
|
// Monitoriza el estado
|
||||||
void Player::updateInvulnerableCounter()
|
void Player::updateInvulnerable()
|
||||||
{
|
{
|
||||||
if (invulnerable)
|
if (invulnerable)
|
||||||
{
|
{
|
||||||
if (invulnerableCounter > 0)
|
if (invulnerableCounter > 0)
|
||||||
{
|
{
|
||||||
invulnerableCounter--;
|
invulnerableCounter--;
|
||||||
|
invulnerableCounter % 8 > 3 ? playerSprite->getTexture()->setPalette(coffees) : playerSprite->getTexture()->setPalette(3);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
invulnerable = false;
|
setInvulnerable(false);
|
||||||
invulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
playerSprite->getTexture()->setPalette(coffees);
|
||||||
playerSprite->getTexture()->setPalette(0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -448,8 +445,8 @@ void Player::giveExtraHit()
|
|||||||
if (coffees < 2)
|
if (coffees < 2)
|
||||||
{
|
{
|
||||||
coffees++;
|
coffees++;
|
||||||
|
playerSprite->getTexture()->setPalette(coffees);
|
||||||
}
|
}
|
||||||
playerSprite->getTexture()->setPalette(coffees);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Quita el toque extra al jugador
|
// Quita el toque extra al jugador
|
||||||
@@ -458,16 +455,11 @@ void Player::removeExtraHit()
|
|||||||
if (coffees > 0)
|
if (coffees > 0)
|
||||||
{
|
{
|
||||||
coffees--;
|
coffees--;
|
||||||
|
setInvulnerable(true);
|
||||||
|
playerSprite->getTexture()->setPalette(coffees);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (coffees == 0)
|
extraHit = coffees == 0 ? false : true;
|
||||||
{
|
|
||||||
extraHit = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
invulnerable = true;
|
|
||||||
invulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
|
||||||
playerSprite->getTexture()->setPalette(coffees);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Habilita la entrada de ordenes
|
// Habilita la entrada de ordenes
|
||||||
|
|||||||
@@ -69,8 +69,8 @@ private:
|
|||||||
// Actualiza el circulo de colisión a la posición del jugador
|
// Actualiza el circulo de colisión a la posición del jugador
|
||||||
void shiftColliders();
|
void shiftColliders();
|
||||||
|
|
||||||
// Actualiza el valor de la variable
|
// Monitoriza el estado
|
||||||
void updateInvulnerableCounter();
|
void updateInvulnerable();
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -158,7 +158,7 @@ public:
|
|||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
bool isInvulnerable();
|
bool isInvulnerable();
|
||||||
|
|
||||||
// Establece el valor de la variable
|
// Establece el valor del estado
|
||||||
void setInvulnerable(bool value);
|
void setInvulnerable(bool value);
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
|
|||||||
Reference in New Issue
Block a user