Différence entre Sprite.collision et Objet.collision

Bonjour,

Quelle est la différence entre la collision de l’objet Sprite, et la collision de l’objet Objet ?

J’ai remarqué que la collision d’un Sprite ne marchait pas si l’opacité du sprite était égale à zéro.
Dommage, car c’était bien pratique pour définir des zones d’interaction avec un carré invisible (les éléments d’un menu par exemple).

La collision d’un Objet se base sur les masques de collision. Mais comment cela fonctionne-t-il dans les faits ?
Ce masque est généré automatiquement, mais quelles sont ses dimensions ?
Dans mes tests, j’ai l’impression que le masque de collision garde les échelles d’origine de son objet, ce qui pose problème si on les a modifié en cours de scène.

Je pense que le sprite et l’image présente sur la scène et que l’objet et la place qui occupe l’objet. Si tu vois a peu prés ce que je veux dire.

Tu peux masquer un objet ( Pas réduire l’opacité à 0, mais bien le masquer ). La collision marchera toujours.

Exact.
Et la collision d’un Sprite se base directement sur les pixels des Sprite, ce qui est plus précis ( et plus gourmand en ressources ) mais ça ne marche qu’entre objet Sprite.

Tu peux le voir dans l’éditeur de l’objet, en cliquant sur le bouton de la barre d’outils permettant d’afficher les masques de collisions.
Par défaut, c’est un rectangle ayant la taille de l’objet. Il peut être changé individuellement pour chaque image.

Ah bon, j’avais pourtant fait des tests avec des objets tournés et redimensionnés. Normalement, les masques suivent toutes les transformations appliquées aux Sprite.

Je vais regarder ça à nouveau d’un peu plus près, alors …
Le truc des objets masquables surtout. J’avais oublié qu’il y avait ça. :stuck_out_tongue:

Actuellement, je mélange les deux : pour que ma souris soit détectée en contact du menu (masque de collision), et pour que le curseur se positionne sur le bon élément (sprite.collision) suite au contact de la souris.
Si je choisis tout l’un ou tout l’autre, ça ne marche pas …