Création de jeux avec Game Maker
La Détection des Collisions
Lors de la planification des mouvements ou lorsque vous décidez d'effectuer certaines actions, il est souvent important de vérifier s'il existe des collisions entre des objets placés à différents endroits. Les routines suivantes peuvent vous être utiles pour effectuer ce contrôle. Ces routines possédent toutes en commun trois arguments. L'argument obj peut être un objet, le mot-clé all ou encore l'ID d'une instance. L'argument prec indique si la vérification doit s'effectuer de manière précise ou seulement être basée sur la boîte de rebond de l'instance. Un contrôle précis n'est fait uniquement que lorsque le sprite de l'instance est paramétré avec l'option de contrôle précis de collision. L'argument notme peut être positionné à true pour indiquer que l'instance courante ne doit pas être vérifiée. Toutes ces fonctions retournent soit l'ID de l'une des instances en collision ou renvoient une valeur négative en cas de non collision.
collision_point(x, y, obj, prec, notme) Cette fonction teste si une collision se produit au point (x,y) avec les entités de l'objet obj.
collision_rectangle(x1, y1, x2, y2, obj, prec, notme) Cette fonction teste s'il existe une collision entre le rectangle (plein) de coins opposés indiqués et les entités de l'objet obj. Par exemple, vous pouvez utiliser cette fonction pour tester si une zone est sans obstacles.
collision_circle(xc, yc, radius, obj, prec, notme) Cette fonction teste s'il y a une collision entre le cercle (plein) centré à la position (xc,yc) d'un rayon donné et les entités de l'objet obj. Par exemple, vous pouvez l'utiliser pour tester si un objet est proche d'un emplacement particulier.
collision_ellipse(x1, y1, x2, y2, obj, prec, notme) Cette fonction teste s'il y collision entre l'ellipse (pleine) de coins opposés indiqués et les entités de l'objet obj.
collision_line(x1, y1, x2, y2, obj, prec, notme) Cette fonction teste s'il se produit une collision entre la ligne droite positionnée de (x1,y1) à (x2,y2) et les entités de l'objet obj. Ceci est une fonction très puissante. Vous pouvez ainsi l'utiliser pour tester si une instance peut en apercevoir une autre en vérifiant si la ligne droite entre les deux instances ne rentre pas par exemple en intersection avec un mur.
<< Traduction française par Philippe Ragni - (2005) >>
Alternative versions
You can also read this manual on one single long page (± 1.5 mb)
Also available in:
Download helpfile
Also available in:
Download helpfile