treballant en sistema de portes i claus
This commit is contained in:
@@ -20,7 +20,10 @@
|
||||
#include "game/defaults.hpp" // Para Defaults::Game
|
||||
#include "game/entities/moving_platform.hpp" // Para MovingPlatform
|
||||
#include "game/game_control.hpp" // Para GameControl
|
||||
#include "game/gameplay/door_tracker.hpp" // Para DoorTracker
|
||||
#include "game/gameplay/inventory.hpp" // Para Inventory
|
||||
#include "game/gameplay/item_tracker.hpp" // Para ItemTracker
|
||||
#include "game/gameplay/key_tracker.hpp" // Para KeyTracker
|
||||
#include "game/gameplay/room.hpp" // Para Room, RoomData
|
||||
#include "game/gameplay/room_tracker.hpp" // Para RoomTracker
|
||||
#include "game/gameplay/scoreboard.hpp" // Para Scoreboard::Data, Scoreboard
|
||||
@@ -66,6 +69,9 @@ Game::Game(Mode mode)
|
||||
|
||||
// Crea objetos e inicializa variables
|
||||
ItemTracker::init();
|
||||
KeyTracker::init();
|
||||
DoorTracker::init();
|
||||
Inventory::init();
|
||||
demoInit();
|
||||
room_ = getOrCreateRoom(current_room_);
|
||||
initPlayer(spawn_data_, room_);
|
||||
@@ -164,6 +170,9 @@ Game::~Game() {
|
||||
}
|
||||
|
||||
ItemTracker::destroy();
|
||||
KeyTracker::destroy();
|
||||
DoorTracker::destroy();
|
||||
Inventory::destroy();
|
||||
|
||||
if (Console::get() != nullptr) { Console::get()->on_toggle = nullptr; }
|
||||
|
||||
@@ -325,6 +334,8 @@ void Game::updatePlaying(float delta_time) {
|
||||
#endif
|
||||
checkPlayerIsOnBorder();
|
||||
checkPlayerAndItems();
|
||||
checkPlayerAndKeys();
|
||||
room_->tryUnlockDoors(player_->getCollider());
|
||||
checkPlayerAndEnemies();
|
||||
checkIfPlayerIsAlive();
|
||||
|
||||
@@ -507,6 +518,8 @@ void Game::renderPlaying() {
|
||||
transition_old_room_->renderPlatforms();
|
||||
transition_old_room_->renderEnemies();
|
||||
transition_old_room_->renderItems();
|
||||
transition_old_room_->renderKeys();
|
||||
transition_old_room_->renderDoors();
|
||||
|
||||
// Renderizar habitación entrante + jugador con su offset
|
||||
Screen::get()->setRenderOffset(new_ox, new_oy);
|
||||
@@ -514,6 +527,8 @@ void Game::renderPlaying() {
|
||||
room_->renderPlatforms();
|
||||
room_->renderEnemies();
|
||||
room_->renderItems();
|
||||
room_->renderKeys();
|
||||
room_->renderDoors();
|
||||
if (mode_ == Mode::GAME) {
|
||||
player_->render();
|
||||
}
|
||||
@@ -527,6 +542,8 @@ void Game::renderPlaying() {
|
||||
room_->renderPlatforms();
|
||||
room_->renderEnemies();
|
||||
room_->renderItems();
|
||||
room_->renderKeys();
|
||||
room_->renderDoors();
|
||||
if (mode_ == Mode::GAME) {
|
||||
player_->render();
|
||||
}
|
||||
@@ -569,6 +586,8 @@ void Game::renderFadeToEnding() {
|
||||
room_->renderMap();
|
||||
room_->renderEnemies();
|
||||
room_->renderItems();
|
||||
room_->renderKeys();
|
||||
room_->renderDoors();
|
||||
player_->render(); // Player congelado pero visible
|
||||
scoreboard_->render();
|
||||
|
||||
@@ -935,6 +954,10 @@ void Game::checkPlayerAndPlatforms() {
|
||||
}
|
||||
|
||||
// Comprueba las colisiones del jugador con los objetos
|
||||
void Game::checkPlayerAndKeys() {
|
||||
room_->keyCollision(player_->getCollider());
|
||||
}
|
||||
|
||||
void Game::checkPlayerAndItems() {
|
||||
room_->itemCollision(player_->getCollider());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user