forked from jaildesigner-jailgames/jaildoctors_dilemma
Añadida mas información al marcador
This commit is contained in:
@@ -4,12 +4,10 @@
|
||||
Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, Debug *debug)
|
||||
{
|
||||
// Inicia algunas variables
|
||||
clock = SDL_GetTicks();
|
||||
board.iniClock = SDL_GetTicks();
|
||||
currentRoom = "01.room";
|
||||
spawnPoint = {16, 96, 0, 0, 0, s_standing, SDL_FLIP_NONE};
|
||||
|
||||
currentRoom = "06.room";
|
||||
spawnPoint = {240, 96, 0, 0, 0, s_standing, SDL_FLIP_HORIZONTAL};
|
||||
|
||||
// Copia los punteros
|
||||
this->renderer = renderer;
|
||||
@@ -17,12 +15,16 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, D
|
||||
this->screen = screen;
|
||||
this->input = input;
|
||||
this->debug = debug;
|
||||
this->debug->setEnabled(true);
|
||||
|
||||
//this->debug->setEnabled(true);
|
||||
//currentRoom = "06.room";
|
||||
//spawnPoint = {240, 96, 0, 0, 0, s_standing, SDL_FLIP_HORIZONTAL};
|
||||
|
||||
// Crea los objetos
|
||||
scoreboard = new ScoreBoard(renderer, asset, &playerLives, &itemsPicked, &clock);
|
||||
scoreboard = new ScoreBoard(renderer, asset, &board);
|
||||
itemTracker = new ItemTracker();
|
||||
room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked, debug);
|
||||
roomTracker = new RoomTracker();
|
||||
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);
|
||||
eventHandler = new SDL_Event();
|
||||
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
||||
@@ -33,11 +35,13 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, D
|
||||
// Inicializa el resto de variables
|
||||
ticks = 0;
|
||||
ticksSpeed = 15;
|
||||
playerLives = 9;
|
||||
itemsPicked = 0;
|
||||
board.lives = 9;
|
||||
board.items = 0;
|
||||
board.rooms = 1;
|
||||
roomTracker->addRoom(currentRoom);
|
||||
|
||||
player->setInvincible(debug->getEnabled());
|
||||
musicEnabled = !debug->getEnabled();
|
||||
board.music = !debug->getEnabled();
|
||||
|
||||
section.name = SECTION_PROG_GAME;
|
||||
section.subsection = SUBSECTION_GAME_PLAY;
|
||||
@@ -53,6 +57,7 @@ Game::~Game()
|
||||
// Libera la memoria de los objetos
|
||||
delete scoreboard;
|
||||
delete itemTracker;
|
||||
delete roomTracker;
|
||||
delete room;
|
||||
delete player;
|
||||
delete eventHandler;
|
||||
@@ -88,12 +93,13 @@ void Game::checkEventHandler()
|
||||
case SDL_SCANCODE_D:
|
||||
debug->switchEnabled();
|
||||
player->setInvincible(debug->getEnabled());
|
||||
musicEnabled = !debug->getEnabled();
|
||||
musicEnabled ? JA_PlayMusic(music) : JA_StopMusic();
|
||||
board.music = !debug->getEnabled();
|
||||
board.music ? JA_ResumeMusic() : JA_PauseMusic();
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_M:
|
||||
(JA_GetMusicState() == JA_MUSIC_PLAYING) ? JA_PauseMusic() : JA_ResumeMusic();
|
||||
board.music = !board.music;
|
||||
board.music ? JA_ResumeMusic() : JA_PauseMusic();
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_F:
|
||||
@@ -131,9 +137,10 @@ void Game::checkEventHandler()
|
||||
// Bucle para el juego
|
||||
section_t Game::run()
|
||||
{
|
||||
if (musicEnabled)
|
||||
JA_PlayMusic(music);
|
||||
if (!board.music)
|
||||
{
|
||||
JA_PlayMusic(music);
|
||||
JA_PauseMusic();
|
||||
}
|
||||
|
||||
while (section.name == SECTION_PROG_GAME)
|
||||
@@ -191,7 +198,7 @@ void Game::render()
|
||||
|
||||
// Debug info
|
||||
renderDebugInfo();
|
||||
//test->render();
|
||||
// test->render();
|
||||
|
||||
// Actualiza la pantalla
|
||||
screen->blit();
|
||||
@@ -261,7 +268,13 @@ bool Game::changeRoom(std::string file)
|
||||
room = nullptr;
|
||||
|
||||
// Crea un objeto habitación nuevo a partir del fichero
|
||||
room = new Room(asset->get(file), renderer, screen, asset, itemTracker, &itemsPicked, debug);
|
||||
room = new Room(asset->get(file), renderer, screen, asset, itemTracker, &board.items, debug);
|
||||
|
||||
// Actualiza el marcador
|
||||
if (roomTracker->addRoom(file))
|
||||
{
|
||||
board.rooms++;
|
||||
}
|
||||
|
||||
// Pasa la nueva habitación al jugador
|
||||
player->setRoom(room);
|
||||
@@ -312,7 +325,7 @@ void Game::killPlayer()
|
||||
return;
|
||||
}
|
||||
|
||||
playerLives--;
|
||||
board.lives--;
|
||||
|
||||
// Destruye la habitacion y el jugador
|
||||
delete room;
|
||||
@@ -322,7 +335,7 @@ void Game::killPlayer()
|
||||
JA_PlaySound(deathSound);
|
||||
|
||||
// Crea la nueva habitación y el nuevo jugador
|
||||
room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked, debug);
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user