Bonjour ,

Depuis que je code des jeux en C++, je suis toujours confronté au même problème : à un moment ou à un autre, je dois implémenter une classe qui va représenter une grande variété d'objets différents. Disons par exemple que je code un RPG et que je code une classe LivingEntity. Cette classe doit représenter toute chose vivante au sein de mon jeu. Cette classe possède donc des attributs pour représenter les points de vie de l'entité, sa position dans le monde...

Sauf que dans mon jeu, comme dans tout jeu qui se respecte, il n'y a pas qu'un type d'entité. Il y en a plein : Des zombies, des monstres plus ou moins variés...

Et une des caractéristique que je veux donner à mes entités est que, toutes les entités qui partagent le même type, doivent partager certaines caractéristiques basiques (comme des valeurs de dégats, un pointeur vers la texture à utiliser pour afficher l'entité...)

Donc j'ai défini un enum EntityType qui contient quelques valeurs, comme PLAYER, ZOMBIE, DEMON..., et j'ai rajouté un attribut EntityType dans ma classe LivingEntity. Le problème, c'est que je ne sais pas où stocker les valeurs qui seront partagées par toutes les entités du même type. J'avais pensé à créer une structure qui contiendrait toutes ces valeurs, et à créer un tableau global de ces structures, de sorte à avoir une syntaxe de la forme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
monster[ZOMBIE] = {10, 5, "zombie.png"}
Mais cette solution n'est vraiment pas élégante. Auriez-vous des suggestions à me proposer ?

Merci !