Añadido el color del borde para cada habitación

This commit is contained in:
2022-09-05 13:51:55 +02:00
parent 87d7bd03ff
commit a121850adb
13 changed files with 37 additions and 20 deletions

View File

@@ -19,7 +19,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input)
// Crea los objetos
scoreboard = new ScoreBoard(renderer, asset, &playerLives, &itemsPicked, &clock);
itemTracker = new ItemTracker();
room = new Room(asset->get(currentRoom), renderer, asset, itemTracker, &itemsPicked);
room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked);
player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room);
eventHandler = new SDL_Event();
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
@@ -260,7 +260,7 @@ 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, asset, itemTracker, &itemsPicked);
room = new Room(asset->get(file), renderer, screen, asset, itemTracker, &itemsPicked);
// Pasa la nueva habitación al jugador
player->setRoom(room);
@@ -318,7 +318,7 @@ void Game::killPlayer()
delete player;
// Crea la nueva habitación y el nuevo jugador
room = new Room(asset->get(currentRoom), renderer, asset, itemTracker, &itemsPicked);
room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked);
player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room);
}

View File

@@ -26,7 +26,7 @@ Item::Item(item_t item)
c = stringToColor("red");
color.push_back(c);
c = stringToColor("purple");
c = stringToColor("magenta");
color.push_back(c);
c = stringToColor("green");

View File

@@ -49,7 +49,7 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset)
c = stringToColor("red");
color.push_back(c);
c = stringToColor("purple");
c = stringToColor("magenta");
color.push_back(c);
c = stringToColor("green");

View File

@@ -4,11 +4,12 @@
#include <sstream>
// Constructor
Room::Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTracker *itemTracker, int *items)
Room::Room(std::string file_path, SDL_Renderer *renderer, Screen *screen, Asset *asset, ItemTracker *itemTracker, int *items)
{
// Copia los punteros a objetos
this->asset = asset;
this->renderer = renderer;
this->asset = asset;
this->screen = screen;
this->itemTracker = itemTracker;
this->itemsPicked = items;
@@ -24,6 +25,9 @@ Room::Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTrac
// Pinta el mapa de la habitación en la textura
fillMapTexture();
// Establece el color del borde
screen->setBorderColor(borderColor);
}
// Destructor
@@ -213,6 +217,11 @@ bool Room::setVars(std::string var, std::string value)
bgColor = stringToColor(value);
}
else if (var == "border")
{
borderColor = stringToColor(value);
}
else if (var == "tileset")
{
tileset = value;

View File

@@ -3,6 +3,7 @@
#include "utils.h"
#include "asset.h"
#include "screen.h"
#include "enemy.h"
#include "item.h"
#include "item_tracker.h"
@@ -39,6 +40,7 @@ class Room
private:
std::string name; // Nombre de la habitación
color_t bgColor; // Color de fondo de la habitación
color_t borderColor; // Color de fondo de la habitación
std::string roomUp; // Identificador de la habitación que se encuentra arriba
std::string roomDown; // Identificador de la habitación que se encuentra abajp
std::string roomLeft; // Identificador de la habitación que se encuentra a la izquierda
@@ -49,6 +51,7 @@ private:
std::vector<Item *> items; // Listado con los items que hay en la habitación
LTexture *texture; // Textura con los graficos de la habitación
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
Screen *screen; // Objeto encargado de dibujar en pantalla
ItemTracker *itemTracker; // Lleva el control de los objetos recogidos
SDL_Renderer *renderer; // El renderizador de la ventana
SDL_Texture *mapTexture; // Textura para dibujar el mapa de la habitación
@@ -72,7 +75,7 @@ private:
public:
// Constructor
Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTracker *item_tracker, int *items);
Room(std::string file_path, SDL_Renderer *renderer, Screen *screen, Asset *asset, ItemTracker *item_tracker, int *items);
// Destructor
~Room();

View File

@@ -29,7 +29,7 @@ ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Asset *asset, int *lives, int *it
c = stringToColor("red");
color.push_back(c);
c = stringToColor("purple");
c = stringToColor("magenta");
color.push_back(c);
c = stringToColor("green");
@@ -50,7 +50,7 @@ ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Asset *asset, int *lives, int *it
c = stringToColor("light_red");
color.push_back(c);
c = stringToColor("light_purple");
c = stringToColor("light_magenta");
color.push_back(c);
c = stringToColor("light_green");

View File

@@ -145,7 +145,7 @@ color_t stringToColor(std::string str)
{
const std::string palette = "spectrum";
if (palette = "spectrum")
if (palette == "spectrum")
{
if (str == "black")
{
@@ -177,12 +177,12 @@ color_t stringToColor(std::string str)
return {0xEE, 0x00, 0x00};
}
else if (str == "purple")
else if (str == "magenta")
{
return {0xFF, 0x00, 0xFF};
}
else if (str == "light_purple")
else if (str == "light_magenta")
{
return {0xEE, 0x00, 0xEE};
}
@@ -260,12 +260,12 @@ color_t stringToColor(std::string str)
return {0xD8, 0x55, 0x25};
}
else if (str == "purple")
else if (str == "magenta")
{
return {0xA1, 0x55, 0x89};
}
else if (str == "light_purple")
else if (str == "light_magenta")
{
return {0xCD, 0x7A, 0x50};
}