Je fais juste mon pinailleur pour dire qu'il est plus propre d'utiliser
true et
false (et déclarer la variable comme booléenne) que 1 et 0
J'explique aussi rapidement le problème que
Creamy propose de résoudre en ajoutant une variable : le code de
chefgeorges se déclenche lorsque deux personnages se chevauchent à l'écran (cf.
IsCollidingWithChar). Donc tant que les deux personnages sont superposés, la commande
Walk est déclenchée. Le problème c'est que les personnages ne sont pas séparés instantanément après que cette commande est déclenchée : suivant divers paramètres (le nombre de pixels qui se chevauchent et la vitesse de chacun des personnages) l'éloignement peut prendre plusieurs cycles avant que les personnages cessent d'être superposés. Ainsi, la commande
Walk est à nouveau exécutée après sa première exécution, car les personnages se chevauchent toujours. L'effet vicieux de la commande
Walk,
si je ne m'abuse, c'est qu'elle attend au moins un cycle avant de déplacer effectivement les personnages. Donc à chaque nouveau cycle, la commande
Walk est exécutée, ayant pour effet de laisser les personnages sur place jusqu'au prochain cycle, où nécessairement ils seront toujours superposés, et donc la commande à nouveau exécutée. Ad lib.
C'est un problème assez récurrent, donc je pensais qu'il serait bon de l'expliquer en détails.
_________________
Ga is Ga
Vous pouvez consulter l'
aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !