mp_potential_step_object(xgoal, ygoal, stepsize, obj)
| Argument | La description |
|---|---|
| xgoal | La position x cible. |
| ygoal | La position y cible. |
| stepsize | La vitesse de déplacement de l'occurrence en pixels par étape. |
| obj | L'objet qui doit bloquer le chemin de l'instance exécutant la fonction. Peut être un index d'objet, un identifiant d'instance ou le mot-clé spécial, tous. |
Renvoie: Booléen.
Cette fonction permet à l'instance de faire un pas vers une position particulière définie par xgoal / ygoal, tout en essayant d'éviter les obstacles. Lorsque l'instance s'exécuterait dans une instance de l'objet spécifié par l'argument "obj", elle changerait la direction du mouvement pour essayer d'éviter cette instance et de la contourner. Cette approche n'est pas garantie pour fonctionner, mais dans la plupart des cas, elle permettra de déplacer efficacement l'instance vers l'objectif. La fonction retourne si l'objectif a été atteint ou non.
if instance_exists(obj_Enemy)
{
var inst;
inst = instance_nearest(x, y, obj_Enemy);
mp_potential_step_object(inst.x, inst.y, 5,
obj_Wall);
}
Le code ci-dessus vérifie d'abord s'il existe des instances de "obj_Enemy" dans la pièce. S'il y en a, alors il trouve le plus proche et stocke son identifiant dans une variable. Cette variable est ensuite utilisée pour dire mp_potential_step_object déplacer l'instance avec le code vers la position x / y de l'objet trouvé à une vitesse de 5 pixels par pas tout en évitant seulement les instances de l'objet "obj_Wall".