Powerup face blinking
This commit is contained in:
111
source/game.cpp
111
source/game.cpp
@@ -1617,7 +1617,7 @@ void Game::renderScoreBoard()
|
||||
const int offset2 = offset1 + 7;
|
||||
const int offset3 = offset2 + 7;
|
||||
const int offset4 = offset3 + 7;
|
||||
|
||||
|
||||
const int offsetLeft = PLAY_AREA_LEFT + 45;
|
||||
const int offsetRight = PLAY_AREA_RIGHT - 45;
|
||||
|
||||
@@ -1731,10 +1731,47 @@ void Game::updateDeath()
|
||||
// Comprueba si todos los jugadores estan muertos
|
||||
bool allPlayersAreDead = true;
|
||||
for (int i = 0; i < mNumPlayers; i++)
|
||||
{
|
||||
allPlayersAreDead &= (!mPlayer[i]->isAlive());
|
||||
|
||||
if (!mPlayer[i]->isAlive())
|
||||
{
|
||||
// Animación
|
||||
if ((mPlayer[i]->getDeathCounter() / 5) % 4 == 0)
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setSpriteClip(24 * 0, 24, 24, 24);
|
||||
else if ((mPlayer[i]->getDeathCounter() / 5) % 4 == 1)
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setSpriteClip(24 * 1, 24, 24, 24);
|
||||
else if ((mPlayer[i]->getDeathCounter() / 5) % 4 == 2)
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setSpriteClip(24 * 2, 24, 24, 24);
|
||||
else if ((mPlayer[i]->getDeathCounter() / 5) % 4 == 3)
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setSpriteClip(24 * 3, 24, 24, 24);
|
||||
|
||||
// Rebote en los laterales
|
||||
if (mSmartSprite[mPlayer[i]->mDeathIndex]->getVelX() > 0)
|
||||
{
|
||||
if (mSmartSprite[mPlayer[i]->mDeathIndex]->getPosX() > (SCREEN_WIDTH - mSmartSprite[mPlayer[i]->mDeathIndex]->getWidth()))
|
||||
{
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setPosX(SCREEN_WIDTH - mSmartSprite[mPlayer[i]->mDeathIndex]->getWidth());
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setVelX(mSmartSprite[mPlayer[i]->mDeathIndex]->getVelX() * (-1));
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setDestX(mSmartSprite[mPlayer[i]->mDeathIndex]->getDestX() * (-1));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mSmartSprite[mPlayer[i]->mDeathIndex]->getPosX() < 0)
|
||||
{
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setPosX(0);
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setVelX(mSmartSprite[mPlayer[i]->mDeathIndex]->getVelX() * (-1));
|
||||
mSmartSprite[mPlayer[i]->mDeathIndex]->setDestX(mSmartSprite[mPlayer[i]->mDeathIndex]->getDestX() * (-1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (allPlayersAreDead)
|
||||
{
|
||||
JA_StopMusic();
|
||||
|
||||
if (mDeathCounter > 0)
|
||||
{
|
||||
mDeathCounter--;
|
||||
@@ -1760,36 +1797,6 @@ void Game::updateDeath()
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Animación
|
||||
if ((mDeathCounter / 5) % 4 == 0)
|
||||
mSmartSprite[mDeathIndex]->setSpriteClip(24 * 0, 24, 24, 24);
|
||||
else if ((mDeathCounter / 5) % 4 == 1)
|
||||
mSmartSprite[mDeathIndex]->setSpriteClip(24 * 1, 24, 24, 24);
|
||||
else if ((mDeathCounter / 5) % 4 == 2)
|
||||
mSmartSprite[mDeathIndex]->setSpriteClip(24 * 2, 24, 24, 24);
|
||||
else if ((mDeathCounter / 5) % 4 == 3)
|
||||
mSmartSprite[mDeathIndex]->setSpriteClip(24 * 3, 24, 24, 24);
|
||||
|
||||
// Rebote en los laterales
|
||||
if (mSmartSprite[mDeathIndex]->getVelX() > 0)
|
||||
{
|
||||
if (mSmartSprite[mDeathIndex]->getPosX() > (SCREEN_WIDTH - mSmartSprite[mDeathIndex]->getWidth()))
|
||||
{
|
||||
mSmartSprite[mDeathIndex]->setPosX(SCREEN_WIDTH - mSmartSprite[mDeathIndex]->getWidth());
|
||||
mSmartSprite[mDeathIndex]->setVelX(mSmartSprite[mDeathIndex]->getVelX() * (-1));
|
||||
mSmartSprite[mDeathIndex]->setDestX(mSmartSprite[mDeathIndex]->getDestX() * (-1));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mSmartSprite[mDeathIndex]->getPosX() < 0)
|
||||
{
|
||||
mSmartSprite[mDeathIndex]->setPosX(0);
|
||||
mSmartSprite[mDeathIndex]->setVelX(mSmartSprite[mDeathIndex]->getVelX() * (-1));
|
||||
mSmartSprite[mDeathIndex]->setDestX(mSmartSprite[mDeathIndex]->getDestX() * (-1));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2050,7 +2057,7 @@ void Game::destroyBalloon(Uint8 index)
|
||||
}
|
||||
|
||||
// Otorga los puntos correspondientes al globo
|
||||
mPlayer[0]->addScore(Uint32(score * mPlayer[0]->getScoreMultiplier()*mDifficultyScoreMultiplier));
|
||||
mPlayer[0]->addScore(Uint32(score * mPlayer[0]->getScoreMultiplier() * mDifficultyScoreMultiplier));
|
||||
//setScore(mPlayer[0]->getScore());
|
||||
updateHiScore();
|
||||
|
||||
@@ -2319,10 +2326,10 @@ void Game::resetItems()
|
||||
// Devuelve un item en función del azar
|
||||
Uint8 Game::dropItem()
|
||||
{
|
||||
//if (mPlayer[0]->isPowerUp() || (mCoffeeMachineEnabled))
|
||||
// return NO_KIND;
|
||||
//else
|
||||
// return ITEM_COFFEE_MACHINE;
|
||||
if (mPlayer[0]->isPowerUp() || (mCoffeeMachineEnabled))
|
||||
return NO_KIND;
|
||||
else
|
||||
return ITEM_COFFEE_MACHINE;
|
||||
|
||||
const Uint8 luckyNumber = rand() % 100;
|
||||
const Uint8 item = rand() % 6;
|
||||
@@ -2454,21 +2461,21 @@ void Game::throwPlayer(int x, int y, int index)
|
||||
{
|
||||
const int sentit = ((rand() % 2) ? 1 : -1);
|
||||
|
||||
mDeathIndex = getSmartSpriteFreeIndex();
|
||||
mSmartSprite[mDeathIndex]->init(mPlayer[index]->getDeadTexture(), mRenderer);
|
||||
mSmartSprite[mDeathIndex]->setPosX(x);
|
||||
mSmartSprite[mDeathIndex]->setPosY(y);
|
||||
mSmartSprite[mDeathIndex]->setWidth(24);
|
||||
mSmartSprite[mDeathIndex]->setHeight(24);
|
||||
mSmartSprite[mDeathIndex]->setVelX(2.0f * sentit);
|
||||
mSmartSprite[mDeathIndex]->setVelY(-5.0f);
|
||||
mSmartSprite[mDeathIndex]->setAccelX(0.0f);
|
||||
mSmartSprite[mDeathIndex]->setAccelY(0.2f);
|
||||
mSmartSprite[mDeathIndex]->setDestX(SCREEN_WIDTH * sentit);
|
||||
mSmartSprite[mDeathIndex]->setDestY(SCREEN_HEIGHT + 1);
|
||||
mSmartSprite[mDeathIndex]->setEnabled(true);
|
||||
mSmartSprite[mDeathIndex]->setEnabledTimer(1);
|
||||
mSmartSprite[mDeathIndex]->setSpriteClip(0, 0, 24, 24);
|
||||
mPlayer[index]->mDeathIndex = getSmartSpriteFreeIndex();
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->init(mPlayer[index]->getDeadTexture(), mRenderer);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setPosX(x);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setPosY(y);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setWidth(24);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setHeight(24);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setVelX(2.0f * sentit);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setVelY(-5.0f);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setAccelX(0.0f);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setAccelY(0.2f);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setDestX(SCREEN_WIDTH * sentit);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setDestY(SCREEN_HEIGHT + 1);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setEnabled(true);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setEnabledTimer(1);
|
||||
mSmartSprite[mPlayer[index]->mDeathIndex]->setSpriteClip(0, 0, 24, 24);
|
||||
}
|
||||
|
||||
// Actualiza los SmartSprites
|
||||
@@ -2516,7 +2523,7 @@ void Game::killPlayer(int index)
|
||||
else
|
||||
{
|
||||
stopAllBalloons(10);
|
||||
JA_StopMusic();
|
||||
//JA_StopMusic();
|
||||
JA_PlaySound(mSoundPlayerCollision);
|
||||
shakeScreen();
|
||||
SDL_Delay(500);
|
||||
|
||||
Reference in New Issue
Block a user