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
|
x2=10
|
||||||
y2=2
|
y2=2
|
||||||
color=white
|
color=white
|
||||||
|
frame=0
|
||||||
[/enemy]
|
[/enemy]
|
||||||
@@ -33,8 +33,15 @@ Enemy::Enemy(enemy_t enemy)
|
|||||||
|
|
||||||
collider = getRect();
|
collider = getRect();
|
||||||
|
|
||||||
// Coloca un frame al azar
|
// Coloca un frame al azar o el designado
|
||||||
sprite->setCurrentFrame(rand() % sprite->getNumFrames());
|
if (enemy.frame == -1)
|
||||||
|
{
|
||||||
|
sprite->setCurrentFrame(rand() % sprite->getNumFrames());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprite->setCurrentFrame(std::min(enemy.frame, sprite->getNumFrames() - 1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ struct enemy_t
|
|||||||
int y2; // Limite inferior 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
|
bool flip; // Indica si el enemigo hace flip al terminar su ruta
|
||||||
bool mirror; // Indica si el enemigo está volteado verticalmente
|
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
|
std::string color; // Color del enemigo
|
||||||
palette_e palette; // Paleta de colores
|
palette_e palette; // Paleta de colores
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ room_t loadRoomFile(std::string file_path, bool verbose)
|
|||||||
enemy_t enemy;
|
enemy_t enemy;
|
||||||
enemy.flip = false;
|
enemy.flip = false;
|
||||||
enemy.mirror = false;
|
enemy.mirror = false;
|
||||||
|
enemy.frame = -1;
|
||||||
enemy.palette = p_zxspectrum;
|
enemy.palette = p_zxspectrum;
|
||||||
|
|
||||||
do
|
do
|
||||||
@@ -327,6 +328,11 @@ bool setEnemy(enemy_t *enemy, std::string var, std::string value)
|
|||||||
enemy->color = value;
|
enemy->color = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if (var == "frame")
|
||||||
|
{
|
||||||
|
enemy->frame = std::stoi(value);
|
||||||
|
}
|
||||||
|
|
||||||
else if (var == "[/enemy]" || var == "tileSetFile" || var.substr(0, 1) == "#")
|
else if (var == "[/enemy]" || var == "tileSetFile" || var.substr(0, 1) == "#")
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user