Trabajando en el marcador

This commit is contained in:
2022-08-31 13:56:17 +02:00
parent fff400be8f
commit c57fbf7bc3
11 changed files with 180 additions and 16 deletions

View File

@@ -15,6 +15,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input)
this->input = input;
// Crea los objetos
scoreboard = new ScoreBoard(renderer, asset);
itemTracker = new ItemTracker();
room = new Room(asset->get(currentRoom), renderer, asset, itemTracker);
player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room);
@@ -38,6 +39,9 @@ Game::~Game()
input = nullptr;
// Libera la memoria de los objetos
delete scoreboard;
scoreboard = nullptr;
delete itemTracker;
itemTracker = nullptr;
@@ -118,7 +122,7 @@ void Game::update()
case SDL_SCANCODE_F4:
screen->setWindowSize(4);
break;
default:
break;
}
@@ -134,6 +138,7 @@ void Game::update()
checkPlayerOnFloor();
checkPlayerAndItems();
checkPlayerAndEnemies();
scoreboard->update();
}
}
@@ -148,14 +153,8 @@ void Game::render()
room->renderEnemies();
room->renderItems();
player->render();
// Texto en el centro de la pantalla
SDL_Rect rect = {0, 16 * 8, PLAY_AREA_RIGHT, 8};
color_t color = stringToColor("light_black");
SDL_SetRenderDrawColor(renderer, color.r, color.g, color.b, 0xFF);
SDL_RenderFillRect(renderer, &rect);
text->writeCentered(GAMECANVAS_CENTER_X, 16 * 8, room->getName());
renderRoomName();
scoreboard->render();
// Debug info
renderDebugInfo();
@@ -204,6 +203,18 @@ void Game::renderDebugInfo()
debugText->write(0, line += inc, text);
}
// Escribe el nombre de la pantalla
void Game::renderRoomName()
{
// Texto en el centro de la pantalla
SDL_Rect rect = {0, 16 * BLOCK, PLAY_AREA_WIDTH, BLOCK};
color_t color = stringToColor("light_black");
SDL_SetRenderDrawColor(renderer, color.r, color.g, color.b, 0xFF);
SDL_RenderFillRect(renderer, &rect);
text->writeCentered(GAMECANVAS_CENTER_X, 16 * 8, room->getName());
}
// Cambia de habitación
bool Game::changeRoom(std::string file)
{