Question

Je refonte actuellement mon Système d'entité, pour C ++, et j'ai beaucoup de gestionnaires. Dans mon design, j'ai ces cours, afin de lier ma bibliothèque ensemble. J'ai entendu beaucoup de mauvaises choses en ce qui concerne les cours "Manager", peut-être que je ne nommais pas mes cours de manière appropriée. Cependant, je ne sais pas comment les nommer d'autre.

La plupart des gestionnaires, dans ma bibliothèque, sont composés de ces classes (bien que cela varie un peu):

  • Conteneur - un conteneur pour les objets du gestionnaire
  • Attributs - Attributs pour les objets du gestionnaire

Dans mon nouveau design pour ma bibliothèque, j'ai ces classes spécifiques, afin de lier ma bibliothèque ensemble.

  • ComponentManager - gère les composants du système d'entité

    • Composant-container
    • ComponentAttributes
    • Scène * - une référence à une scène (voir ci-dessous)
  • SystemManager - gère les systèmes dans le système d'entité

    • Contraignant systémique
    • Scène * - une référence à une scène (voir ci-dessous)
  • EntityManager - gère les entités du système d'entité

    • EntityPool - un pool d'entités
    • EntityAttributes - Attributs d'une entité (cela ne sera accessible qu'aux classes de contraintes et de systèmes)
    • Scène * - une référence à une scène (voir ci-dessous)
  • Scène - Entre tous les managers ensemble

    • Manager composant
    • Systemmanager
    • Entité

Je pensais simplement mettre tous les conteneurs / piscines dans la classe de scène elle-même.

c'est à dire

Au lieu de cela:

Scene scene; // create a Scene

// NOTE:
// I technically could wrap this line in a createEntity() call in the Scene class
Entity entity = scene.getEntityManager().getPool().create();

Ce serait ceci:

Scene scene; // create a Scene

Entity entity = scene.getEntityPool().create();

Mais je ne suis pas sûr. Si je devais faire ce dernier, cela signifierait que j'aurais beaucoup d'objets et de méthodes déclarés dans ma classe de scène.

REMARQUES:

  1. Un système d'entité est simplement une conception utilisée pour les jeux. Il est composé de 3 parties principales: composants, entités et systèmes. Les composants sont simplement des données, qui peuvent être "ajoutées" aux entités, afin que les entités soient distinctives. Une entité est représentée par un entier. Les systèmes contiennent la logique d'une entité, avec des composants spécifiques.
  2. La raison pour laquelle je change mon design pour ma bibliothèque, c'est parce que je pense que cela peut être beaucoup changé, je n'aime pas la sensation / flux pour le moment.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top