forked from jaildesigner-jailgames/jaildoctors_dilemma
Añadida la opcion de que los enemigos puedan decidir el frame de inicio
This commit is contained in:
@@ -38,4 +38,5 @@ y1=2
|
||||
x2=10
|
||||
y2=2
|
||||
color=white
|
||||
frame=0
|
||||
[/enemy]
|
||||
@@ -33,9 +33,16 @@ Enemy::Enemy(enemy_t enemy)
|
||||
|
||||
collider = getRect();
|
||||
|
||||
// Coloca un frame al azar
|
||||
// Coloca un frame al azar o el designado
|
||||
if (enemy.frame == -1)
|
||||
{
|
||||
sprite->setCurrentFrame(rand() % sprite->getNumFrames());
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->setCurrentFrame(std::min(enemy.frame, sprite->getNumFrames() - 1));
|
||||
}
|
||||
}
|
||||
|
||||
// Destructor
|
||||
Enemy::~Enemy()
|
||||
|
||||
@@ -27,6 +27,7 @@ struct enemy_t
|
||||
int y2; // Limite inferior de la ruta en el eje Y
|
||||
bool flip; // Indica si el enemigo hace flip al terminar su ruta
|
||||
bool mirror; // Indica si el enemigo está volteado verticalmente
|
||||
int frame; // Frame inicial para la animación del enemigo
|
||||
std::string color; // Color del enemigo
|
||||
palette_e palette; // Paleta de colores
|
||||
};
|
||||
|
||||
@@ -79,6 +79,7 @@ room_t loadRoomFile(std::string file_path, bool verbose)
|
||||
enemy_t enemy;
|
||||
enemy.flip = false;
|
||||
enemy.mirror = false;
|
||||
enemy.frame = -1;
|
||||
enemy.palette = p_zxspectrum;
|
||||
|
||||
do
|
||||
@@ -327,6 +328,11 @@ bool setEnemy(enemy_t *enemy, std::string var, std::string value)
|
||||
enemy->color = value;
|
||||
}
|
||||
|
||||
else if (var == "frame")
|
||||
{
|
||||
enemy->frame = std::stoi(value);
|
||||
}
|
||||
|
||||
else if (var == "[/enemy]" || var == "tileSetFile" || var.substr(0, 1) == "#")
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user