collision_ellipse

Syntaxe:

collision_ellipse( x1, y1, x2, y2, obj, prec, notme );


Argument La description
x1 La coordonnée x du côté gauche de l'ellipse à vérifier.
y1 La coordonnée y de la partie supérieure de l'ellipse à vérifier.
x2 La coordonnée x du côté droit de l'ellipse à vérifier.
y2 La coordonnée y de la partie inférieure de l'ellipse à 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


La description

Collision_ellipse utilise les quatre premiers arguments (x1, y1, x2, y2) pour définir la largeur et la hauteur d'une ellipse dans la pièce actuelle, puis vérifie si un objet défini par l'argument "obj" est en collision avec ce région. 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 une ellipse 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 l'ellipse, la collision peut toujours se produire (même si vous définissez l'option précise dans la fonction sur true) comme La boîte englobante de cette image-objet chevauche la zone elliptique définie par collision_circle. D'autre part, les boules vertes ne seront considérées en collision que si le sprite réel chevauche l'ellipse définie. 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.


Exemple:

if collision_ellipse(50, 50, 200, 100, obj_Player, false, true)
   {
   instance_create_layer(obj_Player.x, obj_Player.y, "Effects", obj_Splash);
   }

Cela vérifiera une zone elliptique dans les limites de 50x, 50y et 200x, 100y pour l'objet "obj_Player". S'il y a une collision avec cet objet, alors il créera une instance de "obj_Splash" aux coordonnées x / y de obj_Player.