forked from jaildesigner-jailgames/jaildoctors_dilemma
Pantalla a negro al morir
This commit is contained in:
@@ -16,7 +16,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, D
|
||||
this->debug = debug;
|
||||
|
||||
// ****
|
||||
//this->debug->setEnabled(true);
|
||||
// this->debug->setEnabled(true);
|
||||
|
||||
currentRoom = "11.room";
|
||||
spawnPoint = {2 * 8, 5 * 8, 0, 0, 0, s_standing, SDL_FLIP_HORIZONTAL};
|
||||
@@ -48,6 +48,9 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, D
|
||||
board.rooms = 1;
|
||||
board.color = room->getBorderColor();
|
||||
roomTracker->addRoom(currentRoom);
|
||||
paused = false;
|
||||
blackScreen = false;
|
||||
blackScreenCounter = 0;
|
||||
|
||||
player->setInvincible(debug->getEnabled());
|
||||
board.music = !debug->getEnabled();
|
||||
@@ -112,8 +115,20 @@ void Game::checkEventHandler()
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_P:
|
||||
player->pause();
|
||||
room->pause();
|
||||
if (paused)
|
||||
{
|
||||
player->resume();
|
||||
room->resume();
|
||||
scoreboard->resume();
|
||||
paused = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
player->pause();
|
||||
room->pause();
|
||||
scoreboard->pause();
|
||||
paused = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_B:
|
||||
@@ -200,6 +215,7 @@ void Game::update()
|
||||
checkEndGame();
|
||||
scoreboard->update();
|
||||
updateDebugInfo();
|
||||
updateBlackScreen();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,6 +232,7 @@ void Game::render()
|
||||
player->render();
|
||||
renderRoomName();
|
||||
scoreboard->render();
|
||||
renderBlackScreen();
|
||||
|
||||
// Debug info
|
||||
renderDebugInfo();
|
||||
@@ -375,11 +392,14 @@ void Game::killPlayer()
|
||||
// Sonido
|
||||
JA_PlaySound(deathSound);
|
||||
|
||||
SDL_Delay(500);
|
||||
blackScreen = true;
|
||||
|
||||
// Crea la nueva habitación y el nuevo jugador
|
||||
room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &board.items, debug);
|
||||
player = new Player(spawnPoint, asset->get("player.png"), asset->get("player.ani"), renderer, asset, input, room, debug);
|
||||
|
||||
room->pause();
|
||||
player->pause();
|
||||
}
|
||||
|
||||
// Recarga todas las texturas
|
||||
@@ -389,4 +409,32 @@ void Game::reLoadTextures()
|
||||
room->reLoadTexture();
|
||||
scoreboard->reLoadTexture();
|
||||
text->reLoadTexture();
|
||||
}
|
||||
|
||||
// Actualiza las variables relativas a la pantalla en negro
|
||||
void Game::updateBlackScreen()
|
||||
{
|
||||
if (blackScreen)
|
||||
{
|
||||
blackScreenCounter++;
|
||||
if (blackScreenCounter > 50)
|
||||
{
|
||||
blackScreen = false;
|
||||
blackScreenCounter = 0;
|
||||
|
||||
player->resume();
|
||||
room->resume();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dibuja la pantalla negra
|
||||
void Game::renderBlackScreen()
|
||||
{
|
||||
if (blackScreen)
|
||||
{
|
||||
screen->clean();
|
||||
screen->setBorderColor(stringToColor("black"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user