Avec cette fonction, vous pouvez vérifier une position pour une collision avec une autre instance ou toutes les instances d'un objet en utilisant le masque de collision de l'instance qui exécute le code pour la vérification. Lorsque vous l'utilisez, vous demandez en fait à GameMaker Studio 2 de déplacer l'instance vers la nouvelle position, de rechercher une collision, de revenir en arrière et de vous indiquer si une collision a été détectée ou non. Cela fonctionnera pour des collisions précises, mais seulement si l'instance et l'objet vérifiés ont des masques de collision précis, sinon seules les collisions de boîte englobante sont appliquées. cette fonction retournera l'instance unique id de l'objet en collision, mais si cela n'est pas nécessaire, il est légèrement plus rapide d'utiliser la fonction place_meeting. Cette fonction accepte également les mots-clés spéciaux all et other et renverra le mot-clé noone si aucune collision ne se produit, ou la valeur d'ID d'instance unique de l'instance trouvée si une collision se produit.
Notez que les coordonnées x / y données seront arrondies à l'entier le plus proche avant la vérification, donc si ce n'est pas ce dont vous avez besoin (ou si vous avez utilisé un produit GameMaker existant), vous devriez floor les coordonnées dans le contrôle: instance_place(floor(x), floor(y), obj_Enemy).
instance_place(x, y, obj);
Argument La description x La position x pour vérifier les instances. y La position y pour vérifier les instances. obj L'objet à vérifier pour les instances de.
Real (either an instance ID value or the keyword noone)
var inst;
inst = instance_place(x, y, obj_Enemy);
if inst != noone
{ hp -= inst.dmg;
with (inst) instance_destroy();
}
Le code ci-dessus va vérifier une collision avec des instances de "obj_Enemy" et s'il y en a un, il réduira la variable "hp" de la quantité stockée dans la variable "dmg" de l'instance en collision, puis détruira l'instance en collision.