Salut,
Alors comment ajouter des ennemis deja il faut savoir que tu as deja du code tout pret qui t'attend situer dans game.c.
Petit explication :
Deja tout les entitées du jeu sont definie par la structure entity dans yeti.h et tu as dans game.c un serie de fonction de base pour celle-ci :
void entity_friction(entity_t* e, int amount);
void entity_move_forward(entity_t* e);
void entity_move_backwards(entity_t* e) ;
void entity_turn_right(entity_t* e);
void entity_turn_left(entity_t* e);
void entity_turn_towards(entity_t* e, int x, int y);
void entity_kill(entity_t* e);
et
void entity_default(entity_t* e, int isjumping, int iscrawling);
Et tu verras que en dessous tu as une serie de fonction pour creer et gerer des tirs et des guards.
Deja tu les remets en place.
Ensuite tu remarques que dans le game_init tu as a un moment
#ifndef __YETI_EDITOR__
for (y = 0; y < YETI_MAP_HEIGHT; y++)
{
for (x = 0; x < YETI_MAP_WIDTH; x++)
{
if (yeti->cells[y][x].ent == 2)
{
yeti_entity(yeti, i2f(x), i2f(y), i2f(1), guard_behaviour);
}
}
}
#endif
Donc tu dois enlever le #define __YETI_EDITOR__ dans viewport.h si tu veux que ca marche.
Les entités sont placé a l'aide de l'editeur (touche E est un chiffre, ici le 2 pour le gard, 0 etant rien et 1 init joueur).
Un dernier point fait extrement attention au index pointer car sinon ca te fera crasher ton application.
void guard_behaviour(entity_t* e)
{
yeti_t* yeti = e->yeti;
e->visual.data = sprites[(yeti->tick >> 2) & 3];
e->visual.width = 8;
e->visual.height = 12;
e->radius = 200;
e->onhit = guard_collision;
entity_turn_towards(e, yeti->camera->x, yeti->camera->y);
entity_move_forward(e);
e->xx = friction(e->xx, 50);
e->yy = friction(e->yy, 50);
entity_default(e, FALSE, FALSE);
}
Ca c'etait spécifique a une demo avec des ennemis que j'avais mis dans une liste. e->visual.data = sprites[(yeti->tick >> 2) & 3];
A toi de te creer la tienne
Voila j'espère avoir repondue a la question