Avant d expliquer en detail les fonctions de collision, il est utile d observer AMOS Professional en action avec un programme tout pret. Cela va demontrer comment les collisions sont gerees.
Veuillez charger le tutoriel suivant :
DP> Load "AMOSPro Tutorial:Tutorials/Collision_Detection.AMOS"
Lancez ensuite le programme et selectionnez l Exemple 1. Il montre comment une simple raquette et une balle peuvent interagir. Pour simplifier, la raquette est fixe. La detection de collision repose sur la ligne suivante :
X> If Bob Col(1) Then Boom
Remarquez que l effet d explosion est declenche des que la raquette entre en contact, meme legerement, avec la balle. L Exemple 2 lance vraiment le mouvement !
La meme instruction peut aussi etre utilisee pour detecter des collisions entre un objet source et plusieurs cibles. La fonction BOB COL verifie automatiquement tous les Bobs dans l Exemple 3.
Pour affiner le systeme et verifier une plage plus restreinte d objets, ajoutez simplement les numeros du premier et du dernier objet a la commande BOBSPRITE COL dans le programme demonstration. Par exemple, modifier la ligne ainsi permet de tester une balle rouge et une verte :
E> If Bobsprite Col(1,2 To 4) Then Bell 10
Masques
Des masques invisibles sont crees autour des images pour deux raisons principales.
Premiere raison : ils permettent de rendre la couleur de fond (zero) transparente,
afin que l image s integre visuellement a l ecran. Deuxieme raison : ils permettent
a AMOS Professional de detecter les collisions. Les fonctions de detection ne
fonctionnent que si un masque a d abord ete cree autour des images.
Les masques sont automatiquement crees quand une image est assignee a un objet Bob via la commande BOB. Cependant, les Sprites n ont pas de masque par defaut. Si vous voulez detecter les collisions entre Sprites, il est essentiel de leur appliquer un masque.
MAKE MASK
instruction : creer un masque pour la detection de collision
Make Mask
Make Mask numero
Cette commande cree un masque autour de chaque image de la banque d objets (Object Bank), et peut prendre...