collision_rectangle( x1, y1, x2, y2, obj, prec, notme );
| Argument | La description |
|---|---|
| x1 | La coordonnée x du côté gauche du rectangle à vérifier. |
| y1 | La coordonnée y de la partie supérieure du rectangle à vérifier. |
| x2 | La coordonnée x du côté droit du rectangle à vérifier. |
| y2 | La coordonnée y de la partie inférieure du rectangle à vérifier. |
| obj | L'objet à vérifier pour les collisions par exemple. |
| prec | Si la vérification est basée sur des collisions pixel-parfait (vrai = lent) ou sa boîte englobante en général (faux = rapide). |
| notme | Indique si l'instance d'appel, le cas échéant, doit être exclue (true) ou non (false). |
Renvoie: ID d'instance ou noone
Collision_rectangle utilise les quatre premiers arguments (x1, y1, x2, y2) pour définir une zone dans la pièce actuelle, puis vérifie si un objet défini par l'argument "obj" est en collision avec cette zone. Cette collision peut être vérifiée comme précise ou non, et vous pouvez également choisir de vérifier l'instance exécutant le code lui-même ou non. Considérez cette image: 
Ici, l'instance au milieu utilise un rectangle de collision pour vérifier les objets boule. Maintenant, les bleus n'ont pas de boîte de délimitation précise et comme vous pouvez le voir, même si le sprite ne touche pas le rectangle, la collision se produira (même si vous avez défini l'option précise dans la fonction sur true) comme La boîte englobante de cette image-objet chevauche le collision_rectangle. D'un autre côté, les boules vertes ne seront considérées en collision que si le sprite réel chevauche le rectangle. Rappelez - vous, pour des collisions précises à considérer à la fois l'image - objet de l' objet et la fonction de collision doit avoir marqué comme précis sur. Il convient également de noter que la valeur de retour de la fonction peut être l'identifiant de l'une des instances considérées comme étant en collision.
var inst;
inst = collision_rectangle(50, 50, 200, 100, obj_Ball, false,
true);
if inst != noone
{
with (inst) instance_destroy();
}
Ce code court utilise collision_rectangle pour vérifier une zone dans la pièce de 50x, 50y (en haut à gauche du rectangle) à 200x, 200y (en bas à droite du rectangle) pour une instance d'un objet appelé "obj_ball". Il stocke la valeur de retour dans une variable temporaire qui est ensuite vérifiée pour voir si cette valeur est un identifiant d'instance, ou le mot-clé noone. Si ce n'est pas le cas, il utilise l'identifiant de l'instance stockée pour détruire l'objet.