mp_potential_path_object(path, xgoal, ygoal, stepsize, factor, obj)
| Argument | La description |
|---|---|
| path | index du chemin qui doit être utilisé par la fonction |
| xgoal | La position x cible. |
| ygoal | La position y cible. |
| stepsize | La vitesse de déplacement de l'occurrence en pixels par étape. |
| factor | Ce nombre est utilisé pour empêcher une boucle infinie. Il doit être supérieur à 1. Voir la description de la fonction pour plus d'informations. |
| obj | L'objet qui doit bloquer le chemin. Peut être un index d'objet, un identifiant d'instance ou le mot-clé spécial, tous |
Renvoie: Booléen.
Cette fonction calcule un chemin pour l'instance depuis sa position actuelle et son orientation vers la position spécifiée par les arguments xgoal, ygoal. Il utilise la taille de pas indiquée tout en essayant d'éviter la collision avec les instances de l'objet spécifié par l'argument "obj". Comme dans la fonction mp_potential_step il utilise des étapes de terrain potentielles pour accomplir ceci et la manière dont il le fait peut être modifié grâce à la fonction mp_potential_settings. Le chemin indiqué doit déjà exister et il sera écrasé par le nouveau chemin. La fonction retournera si un chemin a été trouvé (vrai) ou non (faux).
Pour éviter que la fonction continue de calculer pour toujours, vous devez fournir un facteur supérieur à 1: la fonction s'arrête et signale un échec si elle ne trouve pas un chemin plus court que ce facteur multiplié par la distance entre le début et le but. Un facteur de 4 est normalement assez bon, mais si vous vous attendez à de longs détours, vous pourriez le faire plus longtemps. Si cela échoue, un chemin est toujours créé qui va dans la direction approximative du but mais il ne l'atteindra pas.
Remarque: Cette fonction ne déplace pas l'instance. Il définit uniquement un chemin, et vous devez utiliser les fonctions Path pour le mouvement.
path = path_add();
mp_potential_path_object(path, obj_Player.x, obj_Player.y, 3, 4,
obj_Wall);
path_start(path, 3, 0, 0);
Le code ci-dessus crée une nouvelle ressource de chemin et stocke son index dans la variable "path". Il génère ensuite un chemin en utilisant mp_potential_path entre l'objet avec ce code et l'objet "obj_Player", en recherchant les collisions avec l'objet "obj_Wall". Enfin, il lance l'objet le long de ce chemin, même si la fonction n'a pas réussi à renvoyer une route complète vers "obj_Player".