Un objet, ce n'est qu'un identifiant unique (un size_t, c'est facile à comparer

)
Physics, Drawing, Sound, ... sont des composants que l'on peut associer à différents objets. Chaque "composant" étant manipulé par différent "systèmes", il suffit que je dispose de l'identifiant de l'objet pour savoir quel composant s'y rapproche. Si je ne trouve pas l'identifiant correspondant à un objet donné dans un de mes "systèmes", c'est que l'objet en question n'est pas sensé être manipulé par le système en question.
Si le système physics se rend compte qu'il y a une collision entre, mettons, l'objet 12 356 et l'objet 34 559, il émet un signal "collision(12356,34559) vers un système particulier permettant spécifiquement de faire le lien entre les différents systèmes). Ce système spécialisé amplifie le signal et le réémet. Signal auquel sera connecté "tous les systèmes qui peuvent avoir quelque chose à faire en cas de collision" (comprends : le système son le système affichage, le système state, ...) et "chacune le traite de son coté" en sachant que les deux objets concernés sont l'objet 12356 (le vilain troll monstrueux) et l'objet 34559 (l'épée de glace de la reine gelée)

Partager