forked from jaildesigner-jailgames/coffee_crisis
before change player animation
This commit is contained in:
BIN
media/.DS_Store
vendored
BIN
media/.DS_Store
vendored
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 9.0 KiB |
@@ -35,18 +35,18 @@ GameDirector::GameDirector(std::string path)
|
|||||||
setFileList();
|
setFileList();
|
||||||
checkFileList();
|
checkFileList();
|
||||||
|
|
||||||
|
// Inicializa SDL
|
||||||
|
initSDL();
|
||||||
|
|
||||||
|
// Inicializa JailAudio
|
||||||
|
initJailAudio();
|
||||||
|
|
||||||
// Carga recursos
|
// Carga recursos
|
||||||
loadMediaProg();
|
loadMediaProg();
|
||||||
loadScoreFile();
|
loadScoreFile();
|
||||||
loadConfigFile();
|
loadConfigFile();
|
||||||
loadDemoFile();
|
loadDemoFile();
|
||||||
|
|
||||||
// Inicializa JailAudio
|
|
||||||
initJailAudio();
|
|
||||||
|
|
||||||
// Inicializa SDL
|
|
||||||
initSDL();
|
|
||||||
|
|
||||||
// Inicializa el resto de variables
|
// Inicializa el resto de variables
|
||||||
initProg();
|
initProg();
|
||||||
}
|
}
|
||||||
@@ -596,7 +596,7 @@ void GameDirector::quitIntro()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Inicializa las variables necesarias para la sección 'Title'
|
// Inicializa las variables necesarias para la sección 'Title'
|
||||||
void GameDirector::initTitle(Uint8 section)
|
void GameDirector::initTitle(Uint8 subsection)
|
||||||
{
|
{
|
||||||
// Reserva memoria para los punteros
|
// Reserva memoria para los punteros
|
||||||
mTexture[TEXTURE_TITLE].texture = new LTexture();
|
mTexture[TEXTURE_TITLE].texture = new LTexture();
|
||||||
@@ -611,7 +611,7 @@ void GameDirector::initTitle(Uint8 section)
|
|||||||
loadMediaTitle();
|
loadMediaTitle();
|
||||||
|
|
||||||
// Inicializa variables
|
// Inicializa variables
|
||||||
mTitle.section = section;
|
mTitle.section = subsection;
|
||||||
mTitle.counter = TITLE_COUNTER;
|
mTitle.counter = TITLE_COUNTER;
|
||||||
mTitle.backgroundCounter = 0;
|
mTitle.backgroundCounter = 0;
|
||||||
mTitle.backgroundMode = rand() % 2;
|
mTitle.backgroundMode = rand() % 2;
|
||||||
@@ -696,10 +696,6 @@ void GameDirector::initTitle(Uint8 section)
|
|||||||
// Inicializa el vector de eventos de la pantalla de titulo
|
// Inicializa el vector de eventos de la pantalla de titulo
|
||||||
for (Uint8 i = 0; i < TITLE_TOTAL_EVENTS; i++)
|
for (Uint8 i = 0; i < TITLE_TOTAL_EVENTS; i++)
|
||||||
mTitle.events[i] = EVENT_WAITING;
|
mTitle.events[i] = EVENT_WAITING;
|
||||||
|
|
||||||
// El tile de fondo
|
|
||||||
mTitle.tile->init(0, 0, 64, 64, mTexture[TEXTURE_TITLE].texture, mRenderer);
|
|
||||||
mTitle.tile->setSpriteClip(192, 0, 64, 64);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Carga los recursos necesarios para la sección 'Title'
|
// Carga los recursos necesarios para la sección 'Title'
|
||||||
@@ -724,6 +720,9 @@ bool GameDirector::loadMediaTitle()
|
|||||||
SDL_SetRenderTarget(mRenderer, mTitleSurface);
|
SDL_SetRenderTarget(mRenderer, mTitleSurface);
|
||||||
SDL_SetRenderDrawColor(mRenderer, 0x43, 0x43, 0x4F, 0xFF);
|
SDL_SetRenderDrawColor(mRenderer, 0x43, 0x43, 0x4F, 0xFF);
|
||||||
SDL_RenderClear(mRenderer);
|
SDL_RenderClear(mRenderer);
|
||||||
|
|
||||||
|
mTitle.tile->init(0, 0, 64, 64, mTexture[TEXTURE_TITLE].texture, mRenderer);
|
||||||
|
mTitle.tile->setSpriteClip(192, 0, 64, 64);
|
||||||
for (Uint8 i = 0; i < 8; i++)
|
for (Uint8 i = 0; i < 8; i++)
|
||||||
for (Uint8 j = 0; j < 6; j++)
|
for (Uint8 j = 0; j < 6; j++)
|
||||||
{
|
{
|
||||||
@@ -731,6 +730,7 @@ bool GameDirector::loadMediaTitle()
|
|||||||
mTitle.tile->setPosY(j * 64);
|
mTitle.tile->setPosY(j * 64);
|
||||||
mTitle.tile->render();
|
mTitle.tile->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
mTitle.backgroundWindow.x = 0;
|
mTitle.backgroundWindow.x = 0;
|
||||||
mTitle.backgroundWindow.y = 0;
|
mTitle.backgroundWindow.y = 0;
|
||||||
mTitle.backgroundWindow.w = SCREEN_WIDTH;
|
mTitle.backgroundWindow.w = SCREEN_WIDTH;
|
||||||
@@ -821,6 +821,13 @@ void GameDirector::initGame()
|
|||||||
loadMediaGame();
|
loadMediaGame();
|
||||||
|
|
||||||
// Inicializa variables
|
// Inicializa variables
|
||||||
|
resetGame();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inicializa las variables especificas de la sección 'Game' para empezar una nueva partida
|
||||||
|
void GameDirector::resetGame()
|
||||||
|
{
|
||||||
|
// Inicializa las variables
|
||||||
mGame.section = GAME_SECTION_PLAY;
|
mGame.section = GAME_SECTION_PLAY;
|
||||||
mGame.menaceLevelCurrent = 0;
|
mGame.menaceLevelCurrent = 0;
|
||||||
mGame.menaceLevelThreshold = 0;
|
mGame.menaceLevelThreshold = 0;
|
||||||
@@ -834,7 +841,6 @@ void GameDirector::initGame()
|
|||||||
mGame.remainingExplosionsCounter = REMAINING_EXPLOSIONS_COUNTER;
|
mGame.remainingExplosionsCounter = REMAINING_EXPLOSIONS_COUNTER;
|
||||||
mGame.timeStopped = false;
|
mGame.timeStopped = false;
|
||||||
mGame.timeStoppedCounter = TIME_STOPPED_COUNTER;
|
mGame.timeStoppedCounter = TIME_STOPPED_COUNTER;
|
||||||
mGame.playFieldDrawOnly = true;
|
|
||||||
mProg.debug = false;
|
mProg.debug = false;
|
||||||
mGame.counter = 0;
|
mGame.counter = 0;
|
||||||
|
|
||||||
@@ -855,13 +861,13 @@ void GameDirector::initGame()
|
|||||||
mGame.grass->setPosY(154);
|
mGame.grass->setPosY(154);
|
||||||
|
|
||||||
// Objeto jugador
|
// Objeto jugador
|
||||||
mGame.player->init(PLAY_AREA_CENTER_X - 12, PLAY_AREA_BOTTOM - 24, mTexture[TEXTURE_PLAYER_LEGS].texture, mTexture[TEXTURE_PLAYER_BODY].texture, mRenderer);
|
mGame.player->init(PLAY_AREA_CENTER_X - 11, PLAY_AREA_BOTTOM - 24, mTexture[TEXTURE_PLAYER_LEGS].texture, mTexture[TEXTURE_PLAYER_BODY].texture, mRenderer);
|
||||||
|
|
||||||
// Establece a cero todos los valores del vector de objetos globo
|
// Establece a cero todos los valores del vector de objetos globo
|
||||||
resetBalloons();
|
resetBalloons();
|
||||||
|
|
||||||
// Crea objetos globo y los centra en el area de juego
|
// Crea objetos globo y los centra en el area de juego
|
||||||
mGame.balloon[0]->init(0, BLOCK, BALLOON_4, BALLOON_VELX_POSITIVE, 0, mTexture[TEXTURE_BALLOON].texture, mRenderer);
|
mGame.balloon[0]->init(0, BLOCK, BALLOON_4, BALLOON_VELX_POSITIVE, 100, mTexture[TEXTURE_BALLOON].texture, mRenderer);
|
||||||
mGame.balloon[0]->allignTo(PLAY_AREA_CENTER_X);
|
mGame.balloon[0]->allignTo(PLAY_AREA_CENTER_X);
|
||||||
|
|
||||||
// Con los globos creados, calcula el nivel de amenaza
|
// Con los globos creados, calcula el nivel de amenaza
|
||||||
@@ -887,7 +893,7 @@ void GameDirector::initGame()
|
|||||||
mGame.getReadyBitmap->setAccelX(0.00f);
|
mGame.getReadyBitmap->setAccelX(0.00f);
|
||||||
mGame.getReadyBitmap->setAccelY(0.0f);
|
mGame.getReadyBitmap->setAccelY(0.0f);
|
||||||
mGame.getReadyBitmap->setSpriteClip(0, 0, 109, 20);
|
mGame.getReadyBitmap->setSpriteClip(0, 0, 109, 20);
|
||||||
mGame.getReadyBitmap->setEnabled(true);
|
mGame.getReadyBitmap->setEnabled(!mDemo.enabled);
|
||||||
mGame.getReadyBitmap->setEnabledTimer(0);
|
mGame.getReadyBitmap->setEnabledTimer(0);
|
||||||
mGame.getReadyBitmap->setDestX(PLAY_AREA_RIGHT);
|
mGame.getReadyBitmap->setDestX(PLAY_AREA_RIGHT);
|
||||||
mGame.getReadyBitmap->setDestY(PLAY_AREA_CENTER_Y - 10);
|
mGame.getReadyBitmap->setDestY(PLAY_AREA_CENTER_Y - 10);
|
||||||
@@ -2313,18 +2319,6 @@ Uint8 GameDirector::getMenaceLevel()
|
|||||||
return mGame.menaceLevelCurrent;
|
return mGame.menaceLevelCurrent;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
|
||||||
bool GameDirector::isPlayFieldDrawOnly()
|
|
||||||
{
|
|
||||||
return mGame.playFieldDrawOnly;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Establece el valor de la variable
|
|
||||||
void GameDirector::setPlayFieldDrawOnly(bool state)
|
|
||||||
{
|
|
||||||
mGame.playFieldDrawOnly = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Establece el valor de la variable
|
// Establece el valor de la variable
|
||||||
void GameDirector::setTimeStopped(bool value)
|
void GameDirector::setTimeStopped(bool value)
|
||||||
{
|
{
|
||||||
@@ -2405,14 +2399,15 @@ void GameDirector::updateRemainingExplosionsCounter()
|
|||||||
// Actualiza el campo de juego
|
// Actualiza el campo de juego
|
||||||
void GameDirector::updatePlayField()
|
void GameDirector::updatePlayField()
|
||||||
{
|
{
|
||||||
if (isPlayFieldDrawOnly() == false)
|
|
||||||
{
|
|
||||||
// Comprueba el teclado/mando
|
// Comprueba el teclado/mando
|
||||||
checkGameInput();
|
checkGameInput();
|
||||||
|
|
||||||
// Actualiza el jugador
|
// Actualiza el jugador
|
||||||
mGame.player->update();
|
mGame.player->update();
|
||||||
|
|
||||||
|
// Actualiza el fondo
|
||||||
|
updateBackground();
|
||||||
|
|
||||||
// Mueve los globos
|
// Mueve los globos
|
||||||
moveBalloons();
|
moveBalloons();
|
||||||
|
|
||||||
@@ -2455,12 +2450,8 @@ void GameDirector::updatePlayField()
|
|||||||
killPlayer();
|
killPlayer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Actualiza el mensaje de GetReady
|
// Actualiza el mensaje de GetReady
|
||||||
mGame.getReadyBitmap->update();
|
mGame.getReadyBitmap->update();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actualiza el fondo
|
// Actualiza el fondo
|
||||||
@@ -2499,7 +2490,6 @@ void GameDirector::renderBackground()
|
|||||||
alpha = 0;
|
alpha = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateBackground();
|
|
||||||
mGame.gradient->setSpriteClip(SCREEN_WIDTH, 192, SCREEN_WIDTH, SCREEN_HEIGHT);
|
mGame.gradient->setSpriteClip(SCREEN_WIDTH, 192, SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||||
mTexture[TEXTURE_GAME_BG].texture->setAlpha(255);
|
mTexture[TEXTURE_GAME_BG].texture->setAlpha(255);
|
||||||
mGame.gradient->render();
|
mGame.gradient->render();
|
||||||
@@ -3004,8 +2994,6 @@ void GameDirector::renderMessages()
|
|||||||
{
|
{
|
||||||
// GETREADY!
|
// GETREADY!
|
||||||
mGame.getReadyBitmap->render();
|
mGame.getReadyBitmap->render();
|
||||||
if (!mGame.getReadyBitmap->isEnabled())
|
|
||||||
setPlayFieldDrawOnly(false);
|
|
||||||
|
|
||||||
// Time Stopped
|
// Time Stopped
|
||||||
if (mGame.timeStopped)
|
if (mGame.timeStopped)
|
||||||
@@ -3147,7 +3135,7 @@ void GameDirector::runLogo()
|
|||||||
{
|
{
|
||||||
initLogo();
|
initLogo();
|
||||||
|
|
||||||
while (mProg.section == PROG_SECTION_LOGO)
|
while ((mProg.section == PROG_SECTION_LOGO) && (!exit()))
|
||||||
{
|
{
|
||||||
// Comprueba los eventos que hay en la cola
|
// Comprueba los eventos que hay en la cola
|
||||||
while (SDL_PollEvent(mEventHandler) != 0)
|
while (SDL_PollEvent(mEventHandler) != 0)
|
||||||
@@ -3242,7 +3230,7 @@ void GameDirector::runIntro()
|
|||||||
JA_PlayMusic(mMusic[MUSIC_INTRO].music, false);
|
JA_PlayMusic(mMusic[MUSIC_INTRO].music, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (mProg.section == PROG_SECTION_INTRO)
|
while ((mProg.section == PROG_SECTION_INTRO) && (!exit()))
|
||||||
{
|
{
|
||||||
if (SDL_GetTicks() - mProg.ticks > mProg.ticksSpeed)
|
if (SDL_GetTicks() - mProg.ticks > mProg.ticksSpeed)
|
||||||
{
|
{
|
||||||
@@ -3407,15 +3395,15 @@ void GameDirector::runIntro()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Bucle para el titulo del juego
|
// Bucle para el titulo del juego
|
||||||
void GameDirector::runTitle(Uint8 section)
|
void GameDirector::runTitle(Uint8 subsection)
|
||||||
{
|
{
|
||||||
Uint8 R = 0x27;
|
Uint8 R = 0x27;
|
||||||
Uint8 G = 0x27;
|
Uint8 G = 0x27;
|
||||||
Uint8 B = 0x36;
|
Uint8 B = 0x36;
|
||||||
|
|
||||||
initTitle();
|
initTitle(subsection);
|
||||||
|
|
||||||
while (mProg.section == PROG_SECTION_TITLE)
|
while ((mProg.section == PROG_SECTION_TITLE) && (!exit()))
|
||||||
{
|
{
|
||||||
// Sección 1 - Titulo desplazandose
|
// Sección 1 - Titulo desplazandose
|
||||||
if (mTitle.section == TITLE_SECTION_1)
|
if (mTitle.section == TITLE_SECTION_1)
|
||||||
@@ -3595,7 +3583,7 @@ void GameDirector::runTitle(Uint8 section)
|
|||||||
mText.white->writeCentered(SCREEN_CENTER_X, PLAY_AREA_THIRD_QUARTER_Y + BLOCK, "PRESS ANY KEY!", 0);
|
mText.white->writeCentered(SCREEN_CENTER_X, PLAY_AREA_THIRD_QUARTER_Y + BLOCK, "PRESS ANY KEY!", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// texto con el copyright y versión
|
// Texto con el copyright y versión
|
||||||
mText.black->writeCentered(SCREEN_CENTER_X + 1, SCREEN_HEIGHT - (BLOCK * 2) + 1, TEXT_COPYRIGHT, 0);
|
mText.black->writeCentered(SCREEN_CENTER_X + 1, SCREEN_HEIGHT - (BLOCK * 2) + 1, TEXT_COPYRIGHT, 0);
|
||||||
mText.white->writeCentered(SCREEN_CENTER_X, SCREEN_HEIGHT - (BLOCK * 2), TEXT_COPYRIGHT, 0);
|
mText.white->writeCentered(SCREEN_CENTER_X, SCREEN_HEIGHT - (BLOCK * 2), TEXT_COPYRIGHT, 0);
|
||||||
|
|
||||||
@@ -3722,7 +3710,7 @@ void GameDirector::runGame()
|
|||||||
{
|
{
|
||||||
initGame();
|
initGame();
|
||||||
|
|
||||||
while (mProg.section == PROG_SECTION_GAME)
|
while ((mProg.section == PROG_SECTION_GAME) && (!exit()))
|
||||||
{
|
{
|
||||||
// Sección juego en pausa
|
// Sección juego en pausa
|
||||||
if (mGame.section == GAME_SECTION_PAUSE)
|
if (mGame.section == GAME_SECTION_PAUSE)
|
||||||
@@ -3798,8 +3786,8 @@ void GameDirector::runGame()
|
|||||||
SDL_RenderCopy(mRenderer, mBackbuffer, NULL, NULL);
|
SDL_RenderCopy(mRenderer, mBackbuffer, NULL, NULL);
|
||||||
|
|
||||||
// Actualiza la pantalla
|
// Actualiza la pantalla
|
||||||
if (mProg.section == PROG_SECTION_GAME)
|
//if (mProg.section == PROG_SECTION_GAME)
|
||||||
SDL_RenderPresent(mRenderer);
|
SDL_RenderPresent(mRenderer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3809,7 +3797,7 @@ void GameDirector::runGame()
|
|||||||
// Bucle para el menu de pausa del juego
|
// Bucle para el menu de pausa del juego
|
||||||
void GameDirector::runPausedGame()
|
void GameDirector::runPausedGame()
|
||||||
{
|
{
|
||||||
while (mGame.section == GAME_SECTION_PAUSE)
|
while ((mGame.section == GAME_SECTION_PAUSE) && (mProg.section == PROG_SECTION_GAME))
|
||||||
{
|
{
|
||||||
// Comprueba los eventos que hay en la cola
|
// Comprueba los eventos que hay en la cola
|
||||||
while (SDL_PollEvent(mEventHandler) != 0)
|
while (SDL_PollEvent(mEventHandler) != 0)
|
||||||
@@ -3997,7 +3985,7 @@ void GameDirector::runInstructions()
|
|||||||
// Bucle para la pantalla de game over
|
// Bucle para la pantalla de game over
|
||||||
void GameDirector::runGameOverScreen()
|
void GameDirector::runGameOverScreen()
|
||||||
{
|
{
|
||||||
while (mGame.section == GAME_SECTION_GAMEOVER)
|
while ((mGame.section == GAME_SECTION_GAMEOVER) && (mProg.section == PROG_SECTION_GAME))
|
||||||
{
|
{
|
||||||
// Comprueba los eventos que hay en la cola
|
// Comprueba los eventos que hay en la cola
|
||||||
while (SDL_PollEvent(mEventHandler) != 0)
|
while (SDL_PollEvent(mEventHandler) != 0)
|
||||||
@@ -4050,12 +4038,14 @@ void GameDirector::runGameOverScreen()
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
setProgSection(PROG_SECTION_GAME);
|
setProgSection(PROG_SECTION_GAME);
|
||||||
|
mGame.section = GAME_SECTION_PLAY;
|
||||||
mMenu.gameOver->reset();
|
mMenu.gameOver->reset();
|
||||||
mMenu.keyPressed = false;
|
mMenu.keyPressed = false;
|
||||||
JA_PlaySound(mSound[SOUND_MENU_SELECT].sound);
|
JA_PlaySound(mSound[SOUND_MENU_SELECT].sound);
|
||||||
JA_StopMusic();
|
JA_StopMusic();
|
||||||
renderFade(1);
|
renderFade(1);
|
||||||
disableDemoMode();
|
disableDemoMode();
|
||||||
|
resetGame();
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
setProgSection(PROG_SECTION_TITLE);
|
setProgSection(PROG_SECTION_TITLE);
|
||||||
@@ -4091,14 +4081,14 @@ void GameDirector::renderDebugInfo()
|
|||||||
void GameDirector::enableDemoMode()
|
void GameDirector::enableDemoMode()
|
||||||
{
|
{
|
||||||
mDemo.enabled = true;
|
mDemo.enabled = true;
|
||||||
mGame.getReadyBitmap->setEnabled(false);
|
//mGame.getReadyBitmap->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Desactiva el modo Demo
|
// Desactiva el modo Demo
|
||||||
void GameDirector::disableDemoMode()
|
void GameDirector::disableDemoMode()
|
||||||
{
|
{
|
||||||
mDemo.enabled = false;
|
mDemo.enabled = false;
|
||||||
mGame.getReadyBitmap->setEnabled(true);
|
//mGame.getReadyBitmap->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actualiza el proximo estado del juego despues del titulo
|
// Actualiza el proximo estado del juego despues del titulo
|
||||||
|
|||||||
@@ -81,7 +81,6 @@ private:
|
|||||||
Uint8 deathIndex; // Indice del vector de smartsprites que contiene el sprite del jugador
|
Uint8 deathIndex; // Indice del vector de smartsprites que contiene el sprite del jugador
|
||||||
Uint8 menaceLevelCurrent; // Nivel de amenaza actual
|
Uint8 menaceLevelCurrent; // Nivel de amenaza actual
|
||||||
Uint8 menaceLevelThreshold; // Umbral del nivel de amenaza. Si el nivel de amenaza cae por debajo del umbral, se generan más globos. Si el umbral aumenta, aumenta el numero de globos
|
Uint8 menaceLevelThreshold; // Umbral del nivel de amenaza. Si el nivel de amenaza cae por debajo del umbral, se generan más globos. Si el umbral aumenta, aumenta el numero de globos
|
||||||
bool playFieldDrawOnly; // Indica si el bucle de juego avanza o solo pinta
|
|
||||||
bool timeStopped; // Indica si el tiempo está detenido
|
bool timeStopped; // Indica si el tiempo está detenido
|
||||||
Uint16 timeStoppedCounter; // Temporizador para llevar la cuenta del tiempo detenido
|
Uint16 timeStoppedCounter; // Temporizador para llevar la cuenta del tiempo detenido
|
||||||
Uint8 remainingExplosions; // Cantidad de explosiones restantes
|
Uint8 remainingExplosions; // Cantidad de explosiones restantes
|
||||||
@@ -242,7 +241,7 @@ public:
|
|||||||
void quitIntro();
|
void quitIntro();
|
||||||
|
|
||||||
// Inicializa las variables necesarias para la sección 'Title'
|
// Inicializa las variables necesarias para la sección 'Title'
|
||||||
void initTitle(Uint8 section = TITLE_SECTION_1);
|
void initTitle(Uint8 subsection = TITLE_SECTION_1);
|
||||||
|
|
||||||
// Carga los recursos necesarios para la sección 'Title'
|
// Carga los recursos necesarios para la sección 'Title'
|
||||||
bool loadMediaTitle();
|
bool loadMediaTitle();
|
||||||
@@ -253,6 +252,9 @@ public:
|
|||||||
// Inicializa las variables necesarias para la sección 'Game'
|
// Inicializa las variables necesarias para la sección 'Game'
|
||||||
void initGame();
|
void initGame();
|
||||||
|
|
||||||
|
// Inicializa las variables especificas de la sección 'Game' para empezar una nueva partida
|
||||||
|
void resetGame();
|
||||||
|
|
||||||
// Carga los recursos necesarios para la sección 'Game'
|
// Carga los recursos necesarios para la sección 'Game'
|
||||||
bool loadMediaGame();
|
bool loadMediaGame();
|
||||||
|
|
||||||
@@ -437,12 +439,6 @@ public:
|
|||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
Uint8 getMenaceLevel();
|
Uint8 getMenaceLevel();
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
|
||||||
bool isPlayFieldDrawOnly();
|
|
||||||
|
|
||||||
// Establece el valor de la variable
|
|
||||||
void setPlayFieldDrawOnly(bool state);
|
|
||||||
|
|
||||||
// Establece el valor de la variable
|
// Establece el valor de la variable
|
||||||
void setTimeStopped(bool value);
|
void setTimeStopped(bool value);
|
||||||
|
|
||||||
@@ -525,7 +521,7 @@ public:
|
|||||||
void runIntro();
|
void runIntro();
|
||||||
|
|
||||||
// Bucle para el titulo del juego
|
// Bucle para el titulo del juego
|
||||||
void runTitle(Uint8 section = TITLE_SECTION_1);
|
void runTitle(Uint8 subsection = TITLE_SECTION_1);
|
||||||
|
|
||||||
// Bucle para el juego
|
// Bucle para el juego
|
||||||
void runGame();
|
void runGame();
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ void Player::init(float x, int y, LTexture *textureLegs, LTexture *textureBody,
|
|||||||
mInvulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
mInvulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
||||||
mExtraHit = false;
|
mExtraHit = false;
|
||||||
mCoffees = 0;
|
mCoffees = 0;
|
||||||
|
mInput = true;
|
||||||
|
|
||||||
// Establece la altura y el ancho del jugador
|
// Establece la altura y el ancho del jugador
|
||||||
mWidth = 3 * BLOCK;
|
mWidth = 3 * BLOCK;
|
||||||
@@ -726,16 +727,40 @@ bool Player::hasExtraHit()
|
|||||||
void Player::giveExtraHit()
|
void Player::giveExtraHit()
|
||||||
{
|
{
|
||||||
mExtraHit = true;
|
mExtraHit = true;
|
||||||
|
mCoffees++;
|
||||||
|
if (mCoffees > 2)
|
||||||
|
mCoffees = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Quita el toque extra al jugador
|
// Quita el toque extra al jugador
|
||||||
void Player::removeExtraHit()
|
void Player::removeExtraHit()
|
||||||
{
|
{
|
||||||
mExtraHit = false;
|
if (mCoffees > 0)
|
||||||
|
mCoffees--;
|
||||||
|
if (mCoffees == 0)
|
||||||
|
mExtraHit = false;
|
||||||
mInvulnerable = true;
|
mInvulnerable = true;
|
||||||
mInvulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
mInvulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Habilita la entrada de ordenes
|
||||||
|
void Player::enableInput()
|
||||||
|
{
|
||||||
|
mInput = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deshabilita la entrada de ordenes
|
||||||
|
void Player::disableInput()
|
||||||
|
{
|
||||||
|
mInput = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Devuelve el numero de cafes actuales
|
||||||
|
Uint8 Player::getCoffees()
|
||||||
|
{
|
||||||
|
return mCoffees;
|
||||||
|
}
|
||||||
|
|
||||||
// Obtiene el circulo de colisión
|
// Obtiene el circulo de colisión
|
||||||
Circle &Player::getCollider()
|
Circle &Player::getCollider()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ private:
|
|||||||
Uint16 mInvulnerableCounter; // Temporizador para la invulnerabilidad
|
Uint16 mInvulnerableCounter; // Temporizador para la invulnerabilidad
|
||||||
bool mExtraHit; // Indica si el jugador tiene un toque extra
|
bool mExtraHit; // Indica si el jugador tiene un toque extra
|
||||||
Uint8 mCoffees; // Indica cuantos cafes lleva acumulados
|
Uint8 mCoffees; // Indica cuantos cafes lleva acumulados
|
||||||
|
bool mInput; // Indica si puede recibir ordenes de entrada
|
||||||
|
|
||||||
AnimatedSprite *mSpriteLegs; // Sprite para dibujar las piernas
|
AnimatedSprite *mSpriteLegs; // Sprite para dibujar las piernas
|
||||||
AnimatedSprite *mSpriteBody; // Sprite para dibujar el cuerpo
|
AnimatedSprite *mSpriteBody; // Sprite para dibujar el cuerpo
|
||||||
@@ -141,6 +142,15 @@ public:
|
|||||||
// Quita el toque extra al jugador
|
// Quita el toque extra al jugador
|
||||||
void removeExtraHit();
|
void removeExtraHit();
|
||||||
|
|
||||||
|
// Habilita la entrada de ordenes
|
||||||
|
void enableInput();
|
||||||
|
|
||||||
|
// Deshabilita la entrada de ordenes
|
||||||
|
void disableInput();
|
||||||
|
|
||||||
|
// Devuelve el numero de cafes actuales
|
||||||
|
Uint8 getCoffees();
|
||||||
|
|
||||||
// Obtiene el circulo de colisión
|
// Obtiene el circulo de colisión
|
||||||
Circle &getCollider();
|
Circle &getCollider();
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user