Ce site démarre dans une implémentation de base.
La plupart des éléments ci-dessus sont inspirés de cet article sur T = Machine
J'ai commencé dans une implémentation de base inspirée des deux liens ci-dessus. Je suis sûr que j'ai beaucoup dévié de la pure théorie des systèmes de composants, et il y a sans aucun doute des bugs, mais cela pourrait s'avérer utile si vous cherchez des exemples simples.
Bricle (C # / XNA)
Pour l'instant, il s'agit simplement de charger des entités de base, de gérer certains événements, etc. Les principaux emplacements que vous recherchez sont le dossier Engine.EntitySystem et probablement le PlayScreen où les entités sont réellement créées.
La création d'un magasin de composants basé sur un type simple et le masquage derrière un EntityManager commun était relativement simple.
Le premier défi que j'ai rencontré était lorsque des systèmes individuels pouvaient nécessiter plusieurs types de composants (c'est-à-dire des composants physiques et InputMoveable). Pour utiliser le langage de base de données relationnelle, j'ai dû trouver un moyen de faire une requête JOIN. Pour cela, j'ai créé un autre type de collection pour les entités construites à partir des requêtes de type de composant correspondant - chaque collection d'entités se connecte à un événement OnEntityCreate et vérifie si elle correspond. Encore quelques bugs là-bas.
Le deuxième défi consistait en fait à créer un «objet de jeu» - je les ai appelés modèles. Ici, je ne suis probablement pas très pur selon les spécifications de T = Machine, mais cela semble fonctionner. Les modèles regroupent les instanciations des composants et permettent une composition plus facile des entités (c.-à-d. Que la balle est dessinée et physique).
J'espère que c'est utile - les systèmes d'entités / composants peuvent être un défi pour surmonter certains des obstacles initiaux.