Ya cambia la paleta de color de casi toda la habitación. Faltan los enemigos

This commit is contained in:
2022-10-26 10:09:48 +02:00
parent 674fdd1d05
commit bdce205006
5 changed files with 45 additions and 26 deletions

View File

@@ -9,7 +9,7 @@ Director::Director(std::string path)
section.name = SECTION_PROG_LOGO;
section.subsection = SUBSECTION_LOGO_TO_INTRO;
section.name = SECTION_PROG_TITLE;
section.name = SECTION_PROG_GAME;
// Crea el objeto que controla los ficheros de recursos
asset = new Asset(path.substr(0, path.find_last_of("\\/")));

View File

@@ -154,14 +154,7 @@ void Game::checkEventHandler()
break;
case SDL_SCANCODE_F5:
if (options->palette == p_zxspectrum)
{
options->palette = p_zxarne;
}
else
{
options->palette = p_zxspectrum;
}
switchPalette();
reLoadTextures();
break;
@@ -411,6 +404,23 @@ void Game::reLoadTextures()
text->reLoadTexture();
}
// Cambia la paleta
void Game::switchPalette()
{
// Modifica la variable
if (options->palette == p_zxspectrum)
{
options->palette = p_zxarne;
}
else
{
options->palette = p_zxspectrum;
}
room->reLoadPalette();
player->reLoadPalette();
}
// Establece la pantalla en negro
void Game::setBlackScreen()
{

View File

@@ -95,6 +95,9 @@ private:
// Recarga todas las texturas
void reLoadTextures();
// Cambia la paleta
void switchPalette();
// Establece la pantalla en negro
void setBlackScreen();

View File

@@ -20,8 +20,8 @@ Room::Room(std::string file, SDL_Renderer *renderer, Screen *screen, Asset *asse
mapWidth = 32;
mapHeight = 16;
paused = false;
itemColor1 = stringToColor(options->palette, "magenta");
itemColor2 = stringToColor(options->palette, "yellow");
itemColor1 = "magenta";
itemColor2 = "yellow";
autoSurfaceDirection = 1;
counter = 0;
@@ -57,7 +57,7 @@ Room::Room(std::string file, SDL_Renderer *renderer, Screen *screen, Asset *asse
fillMapTexture();
// Establece el color del borde
screen->setBorderColor(borderColor);
screen->setBorderColor(stringToColor(options->palette, borderColor));
}
// Destructor
@@ -130,8 +130,8 @@ bool Room::loadMapFile(std::string file_path)
item.asset = asset;
item.renderer = renderer;
item.counter = 0;
item.color1 = itemColor1;
item.color2 = itemColor2;
item.color1 = stringToColor(options->palette, itemColor1);
item.color2 = stringToColor(options->palette, itemColor2);
do
{
@@ -249,22 +249,22 @@ bool Room::setVars(std::string var, std::string value)
else if (var == "bgColor")
{
bgColor = stringToColor(options->palette, value);
bgColor = value;
}
else if (var == "border")
{
borderColor = stringToColor(options->palette, value);
borderColor = value;
}
else if (var == "itemColor1")
{
itemColor1 = stringToColor(options->palette, value);
itemColor1 = value;
}
else if (var == "itemColor2")
{
itemColor2 = stringToColor(options->palette, value);
itemColor2 = value;
}
else if (var == "tileset")
@@ -464,13 +464,13 @@ std::string Room::getName()
// Devuelve el color de la habitación
color_t Room::getBGColor()
{
return bgColor;
return stringToColor(options->palette, bgColor);
}
// Devuelve el color del borde
color_t Room::getBorderColor()
{
return borderColor;
return stringToColor(options->palette, borderColor);
}
// Crea la textura con el mapeado de la habitación
@@ -794,8 +794,14 @@ void Room::reLoadTexture()
// Recarga la paleta
void Room::reLoadPalette()
{
itemColor1 = stringToColor(options->palette, "magenta");
itemColor2 = stringToColor(options->palette, "yellow");
// Cambia el color de los items
for (auto item:items)
{
item->setColors(stringToColor(options->palette, itemColor1), stringToColor(options->palette, itemColor2));
}
// Establece el color del borde
screen->setBorderColor(stringToColor(options->palette, borderColor));
}
// Obten el tamaño del tile

View File

@@ -52,10 +52,10 @@ private:
// Variables
std::string name; // Nombre de la habitación
color_t bgColor; // Color de fondo de la habitación
color_t borderColor; // Color del borde de la pantalla
color_t itemColor1; // Color 1 para los items de la habitación
color_t itemColor2; // Color 2 para los items de la habitación
std::string bgColor; // Color de fondo de la habitación
std::string borderColor; // Color del borde de la pantalla
std::string itemColor1; // Color 1 para los items de la habitación
std::string itemColor2; // Color 2 para los items 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