Bonsoir,
J’ai un objet “Héro” entouré de “capteursHéro” (mini objets placés autour du “héro” pour détecter si le “Héro” aura le droit de se déplacer à droite, à gauche, en haut, en bas. Lorsque les capteurs entrent en collision avec d’autres objets je mets à jour des variables (“Bas”, “Haut”, “Droite”, “Gauche”) de l’objet “Héro”.
J’ai plusieurs instances d’objet “Garde” également entourés de “capteursGarde” pour la même raison. Les collision de ces capteurs entrainent également la mise à jour des variables “Bas”, Haut", “Droite”, “Gauche” des instances d’objet “Garde”.
Tout marche parfaitement lorsque le Héro ou les Gardes rencontrent d’autres objets (leurs variables sont correctement initialisées)
Mais comment faire lorsqu’un Garde rencontre un autre Garde? Prenons l’exemple d’un garde (ID=1) qui se trouve au dessus d’un autre garde (ID=2)
Comment faire en sorte d’initialiser correctement les variables “Bas” de chacun de ces gardes?
La variable “Bas” du garde au dessus (ID=1) devra être mise à jour et être égale à “Garde”
La variable “Bas” du garde au dessous (ID=2) devra être inchangée, toujours égale à “Vide”
J’ai essayé quelque chose du style:
/* initialisation des variables “Bas” */
Pour chaque objet Garde, répéter:
Faire “Vide” au texte de la variable “Bas” de Garde
/* teste de collision et mise à jour éventuelle des variables “Bas” /
Pour chaque objet Garde, répéter:
Pour chaque objet CapteurBasGarde /(je me débrouille pour sélectionner le bon “CapteurBasGarde” de chaque garde avec un ID du capteur qui correspond à l’ID du garde…pas de problème… MAIS maintenant il me faut tester l’éventuelle collision de CE “CapteurBasGarde” avec un autre garde) */
Pour chaque objet Garde, répéter:
L’objet CapteurBasGarde est en collision avec Garde, Faire “Garde” au texte de la variable “Bas” de Garde
La variable “Bas” du Garde du dessus n’est jamais mise à jour… Est-ce que mon problème vient du fait que j’ai deux boucles imbriquées “Pour chaque objet Garde, répéter”?
Gasp! Je ne suis pas certain d’être très clair dans mon explication
Est-ce que quelqu’un aurait un petit conseil à donner dans un cas (tordu… je l’avoue…) comme le mien?
Cordialement,
Damien.