added difficulty (speed and points)
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
#endif
|
||||
|
||||
// Constructor
|
||||
Game::Game(int numPlayers, SDL_Renderer *renderer, std::string *filelist, Lang *lang, Input *input1, Input *input2, bool demo)
|
||||
Game::Game(int numPlayers, SDL_Renderer *renderer, std::string *filelist, Lang *lang, Input *input1, Input *input2, bool demo, int difficulty)
|
||||
{
|
||||
// Copia los punteros
|
||||
mRenderer = renderer;
|
||||
@@ -13,8 +13,11 @@ Game::Game(int numPlayers, SDL_Renderer *renderer, std::string *filelist, Lang *
|
||||
mLang = lang;
|
||||
mInput[0] = input1;
|
||||
mInput[1] = input2;
|
||||
|
||||
// Pasa variables
|
||||
mDemo.enabled = demo;
|
||||
mNumPlayers = numPlayers;
|
||||
mDifficulty = difficulty;
|
||||
|
||||
// Crea los objetos
|
||||
for (int i = 0; i < mNumPlayers; i++)
|
||||
@@ -284,6 +287,26 @@ void Game::init()
|
||||
mTicksSpeed = 15;
|
||||
|
||||
// Inicializa las variables
|
||||
switch (mDifficulty)
|
||||
{
|
||||
case DIFFICULTY_EASY:
|
||||
mDefaultEnemySpeed = BALLOON_SPEED_1;
|
||||
mDifficultyScoreMultiplier = 0.5f;
|
||||
break;
|
||||
|
||||
case DIFFICULTY_NORMAL:
|
||||
mDefaultEnemySpeed = BALLOON_SPEED_1;
|
||||
mDifficultyScoreMultiplier = 1.0f;
|
||||
break;
|
||||
|
||||
case DIFFICULTY_HARD:
|
||||
mDefaultEnemySpeed = BALLOON_SPEED_5;
|
||||
mDifficultyScoreMultiplier = 1.5f;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
mGameCompleted = false;
|
||||
mGameCompletedCounter = 0;
|
||||
mSection.name = PROG_SECTION_GAME;
|
||||
@@ -303,7 +326,7 @@ void Game::init()
|
||||
mBalloonsPopped = 0;
|
||||
mLastEnemyDeploy = 0;
|
||||
mEnemyDeployCounter = 0;
|
||||
mEnemySpeed = BALLOON_SPEED_1;
|
||||
mEnemySpeed = mDefaultEnemySpeed;
|
||||
mEffect.flash = false;
|
||||
mEffect.shake = false;
|
||||
mEffect.shakeCounter = SHAKE_COUNTER;
|
||||
@@ -1677,7 +1700,7 @@ void Game::updateStage()
|
||||
}
|
||||
JA_PlaySound(mSoundStageChange);
|
||||
mStageBitmapCounter = 0;
|
||||
mEnemySpeed = BALLOON_SPEED_1;
|
||||
mEnemySpeed = mDefaultEnemySpeed;
|
||||
setBalloonSpeed(mEnemySpeed);
|
||||
mEffect.flash = true;
|
||||
mEffect.shake = true;
|
||||
@@ -1867,31 +1890,39 @@ void Game::setBalloonSpeed(float speed)
|
||||
// Incrementa la velocidad de los globos
|
||||
void Game::incBalloonSpeed()
|
||||
{
|
||||
if (mEnemySpeed == BALLOON_SPEED_1)
|
||||
mEnemySpeed = BALLOON_SPEED_2;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_2)
|
||||
mEnemySpeed = BALLOON_SPEED_3;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_3)
|
||||
mEnemySpeed = BALLOON_SPEED_4;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_4)
|
||||
mEnemySpeed = BALLOON_SPEED_5;
|
||||
// La velocidad solo se incrementa en el modo normal
|
||||
if (mDifficulty == DIFFICULTY_NORMAL)
|
||||
{
|
||||
if (mEnemySpeed == BALLOON_SPEED_1)
|
||||
mEnemySpeed = BALLOON_SPEED_2;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_2)
|
||||
mEnemySpeed = BALLOON_SPEED_3;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_3)
|
||||
mEnemySpeed = BALLOON_SPEED_4;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_4)
|
||||
mEnemySpeed = BALLOON_SPEED_5;
|
||||
|
||||
setBalloonSpeed(mEnemySpeed);
|
||||
setBalloonSpeed(mEnemySpeed);
|
||||
}
|
||||
}
|
||||
|
||||
// Decrementa la velocidad de los globos
|
||||
void Game::decBalloonSpeed()
|
||||
{
|
||||
if (mEnemySpeed == BALLOON_SPEED_5)
|
||||
mEnemySpeed = BALLOON_SPEED_4;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_4)
|
||||
mEnemySpeed = BALLOON_SPEED_3;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_3)
|
||||
mEnemySpeed = BALLOON_SPEED_2;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_2)
|
||||
mEnemySpeed = BALLOON_SPEED_1;
|
||||
// La velocidad solo se decrementa en el modo normal
|
||||
if (mDifficulty == DIFFICULTY_NORMAL)
|
||||
{
|
||||
if (mEnemySpeed == BALLOON_SPEED_5)
|
||||
mEnemySpeed = BALLOON_SPEED_4;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_4)
|
||||
mEnemySpeed = BALLOON_SPEED_3;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_3)
|
||||
mEnemySpeed = BALLOON_SPEED_2;
|
||||
else if (mEnemySpeed == BALLOON_SPEED_2)
|
||||
mEnemySpeed = BALLOON_SPEED_1;
|
||||
|
||||
setBalloonSpeed(mEnemySpeed);
|
||||
setBalloonSpeed(mEnemySpeed);
|
||||
}
|
||||
}
|
||||
|
||||
// Actualiza la velocidad de los globos en funcion del poder acumulado de la fase
|
||||
@@ -2010,7 +2041,7 @@ void Game::destroyBalloon(Uint8 index)
|
||||
}
|
||||
|
||||
// Otorga los puntos correspondientes al globo
|
||||
mPlayer[0]->addScore(Uint32(score * mPlayer[0]->getScoreMultiplier()));
|
||||
mPlayer[0]->addScore(Uint32(score * mPlayer[0]->getScoreMultiplier()*mDifficultyScoreMultiplier));
|
||||
//setScore(mPlayer[0]->getScore());
|
||||
updateHiScore();
|
||||
|
||||
@@ -2165,7 +2196,7 @@ void Game::checkBulletBalloonCollision()
|
||||
// Otorga los puntos correspondientes al globo al jugador que disparó la bala
|
||||
int index = mBullet[j]->getOwner();
|
||||
mPlayer[index]->incScoreMultiplier();
|
||||
mPlayer[index]->addScore(Uint32(mBalloon[i]->getScore() * mPlayer[index]->getScoreMultiplier()));
|
||||
mPlayer[index]->addScore(Uint32(mBalloon[i]->getScore() * mPlayer[index]->getScoreMultiplier() * mDifficultyScoreMultiplier));
|
||||
//setScore(mPlayer[index]->getScore());
|
||||
updateHiScore();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user