Comme pour la classe odfaeg::graphic::Entity, pour définir son propre type de gestionnaire d'entité, il faut hériter d'une classe,
et cette classe se nomme odfaeg::graphic::SceneManager.
Il y a également plusieurs méthodes à redéfinir, que voici :
std::vector
Par exemple, manager.getEntities("E_WALL") retournera toutes les entités de type (ou appartenant au groupe d'entités) "E_WALL".
void checkVisibleEntities() : Recherche toutes les entités visibles pour chaque composant de rendu. (celles qui se trouvent
dans le champ de vision de la caméra)
std::vector
std::vector
tel(s) type(s) se trouvant dans la boîte englobante passée en paramètre.
bool collide (Entity* entity) : Recherche si une entité est en collision avec une autre entité.
bool collide (Entity* entity, math::Vec3f position) : Recherche si une entité est en collision lorsqu'elle
se trouve à la position passée en paramètre.
bool collide (Entity* entity, math::Ray ray) : Recherche si une entité est en collision avec une autre entité
si on la déplace suivant le rayon passé en paramètre.
void generate_map(std::vector
: génère une map (sol + contours) aléatroirement, de taille spécifiée; tGrounds sont les tiles du sol,
tWalls sont les murs du contours (coins et bords), les tiles du sols sont choisies aléatoirement,
tileSize est la taille d'un carré du terrain,
zone est la boîte englobante du terrain.
void moveEntity(Entity *entity, float x, float y, float z) :
Déplace l'entité passée en paramètre.
bool addEntity(Entity *entity)
Ajoute une entités dans le gestionnaire, si une entité identique s'y trouve déjà, alors, la méthode retourne faux.
BaseChangementMatrix getBaseChangementMatrix() :
Renvoie la matrice de changement de base, celle-ci permet de passer des coordonnées 2D en coordonnée 2D isométrique
par exemple.
std::vector
bool removeEntity(Entity* entity) : Supprime l'entité (sans la supprimer de la mémoire)
Retourne le chemin à parcourir par une entité pour atteindre la position passé en paramètre.
(N'oubliez pas de prendre en compte les collisions)
std::vector
Retourne toutes les cases de la grille virtuelle contenant les entités.
bool deleteEntity(Entity* entity) : Supprime l'entité de la mémoire.
Entity* getEntity(int id) : retourne l'entité d'id passé en paramètre.