sprite_collision_mask(ind, sepmasks, bboxmode, bbleft, bbtop, bbright, bbbottom, kind, tolerance);
Argument La description ind L'index de l'image-objet pour définir la boîte de délimitation de. sepmasks Si créer des masques de collision pour chaque sous-image de l'image-objet ( true ), ou un masque pour tous ( false ). bboxmode Quel genre de boîte de délimitation à utiliser. 0 = automatique, 1 = pleine image, 2 = définie par l'utilisateur. bbleft La position maximale à gauche de la boîte englobante. bbtop La position supérieure maximale de la boîte englobante. bbright La position maximale droite de la boîte englobante. bbbottom La position inférieure maximale de la zone de délimitation. kind Le type de masque (0 = précis, 1 = cadre de délimitation, 2 = disque, 3 = diamant). tolerance Indique la tolérance dans la valeur de transparence (0 = pas de tolérance, 255 = tolérance complète).
N/A
Avec cette fonction, vous pouvez définir le type de masque de collision qu'un sprite doit avoir. Si vous sélectionnez l'option automatique (0) ou image complète (1), les valeurs de la boîte englobante individuelle peuvent être définies sur 0. Toutefois, pour un masque défini par l'utilisateur (2), vous devez définir ces valeurs. Les différentes valeurs de la boîte englobante sont toujours relatives au coin supérieur gauche de l'image-objet (quelle que soit l'origine x et y) considérée comme position (0, 0).
Définir le type de masque définit la forme générale du masque lui-même, mais notez que tout ce qui n'est pas un masque rectangulaire nécessitera plus de puissance de traitement lors de la résolution des collisions, avec une baisse des performances. En général, vous ne devez utiliser que des types de masques autres que rectangulaires lorsque cela est absolument nécessaire.
Enfin, la tolérance est utilisée pour définir la précision du masque (lorsqu'il est utilisé avec un masque "image complète", cela n'aura aucun effet), avec une tolérance de 0 signifiant que le masque suivra chaque pixel qui a une transparence sur 0, tandis que d'autres valeurs déplacent le périmètre du masque de collision en fonction de la transparence des pixels.
REMARQUE: cette fonction n'est utile que pour les images- objets bitmap et ne fonctionnera pas avec les images-objets SWF ou JSON (Spine).Remarque: cette fonction fonctionnera uniquement sur les images-objets en double et non directement sur les ressources prédéfinies. vous pouvez dupliquer des sprites en utilisant la fonction sprite_duplicate.
spr = sprite_add("player_5.png", 16, true, true, 0,
0);
sprite_collision_mask(spr, true, 1, 0, 0, 0, 0, 0, 0);
Le code ci-dessus charge une image-objet à partir d'une source externe et stocke le nouvel index dans la variable "spr". Le code définit ensuite le nouveau sprite pour avoir un masque de collision précis pour chacune de ses sous-images.