Ya cambia el color de los enemigos al cambiar la paleta

This commit is contained in:
2022-10-26 10:32:16 +02:00
parent bdce205006
commit db5d2901ee
3 changed files with 32 additions and 10 deletions

View File

@@ -18,7 +18,9 @@ Enemy::Enemy(enemy_t enemy)
x2 = enemy.x2;
y1 = enemy.y1;
y2 = enemy.y2;
color = enemy.color;
palette = enemy.palette;
colorString = enemy.color;
color = stringToColor(palette, colorString);
sprite->setPosX(enemy.x);
sprite->setPosY(enemy.y);
sprite->setVelX(enemy.vx);
@@ -102,3 +104,10 @@ void Enemy::reLoadTexture()
{
texture->reLoad();
}
// Asigna la paleta
void Enemy::setPalette(palette_e pal)
{
palette = pal;
color = stringToColor(palette, colorString);
}

View File

@@ -26,7 +26,8 @@ struct enemy_t
int y1; // Limite superior de la ruta en el eje Y
int y2; // Limite inferior de la ruta en el eje Y
bool flip; // Indica si el enemigo hace flip al terminar su ruta
color_t color; // Color del enemigo
std::string color; // Color del enemigo
palette_e palette; // Paleta de colores
};
class Enemy
@@ -39,13 +40,15 @@ private:
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
// Variables
color_t color; // Color del enemigo
int x1; // Limite izquierdo de la ruta en el eje X
int x2; // Limite derecho de la ruta en el eje X
int y1; // Limite superior de la ruta en el eje Y
int y2; // Limite inferior de la ruta en el eje Y
SDL_Rect collider; // Caja de colisión
bool doFlip; // Indica si el enemigo hace flip al terminar su ruta
color_t color; // Color del enemigo
std::string colorString; // Color del enemigo en formato texto
palette_e palette; // Paleta de colores
int x1; // Limite izquierdo de la ruta en el eje X
int x2; // Limite derecho de la ruta en el eje X
int y1; // Limite superior de la ruta en el eje Y
int y2; // Limite inferior de la ruta en el eje Y
SDL_Rect collider; // Caja de colisión
bool doFlip; // Indica si el enemigo hace flip al terminar su ruta
// Comprueba si ha llegado al limite del recorrido para darse media vuelta
void checkPath();
@@ -71,6 +74,9 @@ public:
// Recarga la textura
void reLoadTexture();
// Asigna la paleta
void setPalette(palette_e pal);
};
#endif

View File

@@ -105,6 +105,7 @@ bool Room::loadMapFile(std::string file_path)
enemy.asset = asset;
enemy.renderer = renderer;
enemy.flip = false;
enemy.palette = options->palette;
do
{
@@ -397,7 +398,7 @@ bool Room::setEnemy(enemy_t *enemy, std::string var, std::string value)
else if (var == "color")
{
enemy->color = stringToColor(options->palette, value);
enemy->color = value;
}
else if (var == "[/enemy]")
@@ -800,6 +801,12 @@ void Room::reLoadPalette()
item->setColors(stringToColor(options->palette, itemColor1), stringToColor(options->palette, itemColor2));
}
// Cambia el color de los enemigos
for (auto enemy:enemies)
{
enemy->setPalette(options->palette);
}
// Establece el color del borde
screen->setBorderColor(stringToColor(options->palette, borderColor));
}