Le module core. (Partie 4)

Voici donc la dernière partie du module core.

En fait, peut être pas vraiment, je viens de faire la rencontre d’un nouveau développeur qui m’a proposé d’unir nos deux moteur (le développeur de LastEngine) il y aura donc en plus une interface qui permettra d’utiliser des modules d’autres librairies que la SFML.

Mais ceci est pour plus tard.

Methode 1 : les variants.

Pour faire les classes utilitaires pour le gamplay, on peut utiliser par exemple des variants et il y a moyen de le faire sans trop se casser la tête en utilisant du code déjà existant que j’ai pu trouvé sur ce lien :

Variadic templates, part 3 (or how I wrote a variant class)

J’en ai profité pour rajouter la même chose pour les n-ary visitor.

Je ne vais pas trop détailler les explications sont sur le lien que je vous ai donné.

Il existe cependant il méthode plus simple mais qui requiers l’utilisation d’une interface commune, cette méthode est une méthode de la bibliothèque multi-dispatch que j’ai reprise pour mon moteur.

Méthode 2 : Génération automatique de hiérarchie.

Ce code est tiré de la bibliothèque multiple-dispatch.

Les states.

Les states sont aussi très utile lors du gameplay pour annuler ou bien rétablir une action par exemple, ou encore, afficher/masquer des menus sans devoir les recharger.

Pour faire cela j’ai créer une classe state qui peut contenir plusieurs des paramètres de n’importe quel type, j’ai également défini une classe StateExecutor qui permet d’annuler ou bien de rétablir un state lors de l’exécution de action.

La classe stategroup permet de contenir un groupe de states ce qui est utile par exemple lors des actions qui s’effectuent entre deux clic de souris.

Et enfin, une dernière classe permet d’appliquer ou de rétablir le dernier groupe de states qui a été enregistré.

Voilà ce qui termine le module core de ODFAEG et celui-ci permet de faire beaucoup de choses puissantes de manière simple, performante et safe, d’ailleurs c’est le but recherché par ODFAEG, personnellement je suis fier de ce module, dans la prochaine page je vais parler du module physique qui est tout aussi bien.

Leave a comment