Manuel Amos Professional  Sommaire  Index

Detection de Collisions


SPRITEBOB COL
fonction : tester la collision entre un Sprite et une plage de Bobs
c=Spritebob Col(numero)
c=Spritebob Col(numero,debut To fin)

Comme son nom l indique, cette fonction teste une collision entre le Sprite dont vous specifiez le numero et un ou plusieurs objets Blitter. Si le Sprite entre en collision avec un Bob, elle retourne -1 (vrai), sinon 0 (faux).

Par defaut, cette fonction teste la collision avec tous les Bobs affiches a l ecran. Mais vous pouvez restreindre la verification a une plage specifique de Bobs en indiquant le numero du premier et du dernier Bob a verifier.

Si vous devez tester plusieurs Sprites contre des Bobs, placez la commande dans une boucle, comme ceci :

X> For FIRSTSPRITE=1 To LASTSPRITE
    If Spritebob Col(FIRSTSPRITE,FIRSTBOB To LASTBOB) Then Boom
   Next FIRSTSPRITE

N oubliez pas que tous les Sprites concernes doivent utiliser une image avec un masque, sinon la detection de collision ne fonctionnera pas. Notez egalement que cette fonction ne marche qu avec les ecrans en basse resolution. L utiliser avec un ecran en haute resolution produira des resultats imprevisibles, car les tailles des pixels sont differentes pour les Sprites et les Bobs.

BOBSPRITE COL
fonction : tester la collision entre un Bob et une plage de Sprites
c=Bobsprite Col(numero)
c=Bobsprite Col(numero,debut To fin)

Cette fonction verifie si le Bob specifie entre en collision avec un ou plusieurs Sprites actifs a l ecran. Elle retourne -1 (vrai) si collision, 0 (faux) sinon.

Pour restreindre la plage de Sprites a tester, indiquez simplement les numeros du premier au dernier Sprite a verifier. Comme avec SPRITEBOB COL, cette fonction ne doit etre utilisee qu en basse resolution.

COL
fonction : verifier l etat d un objet apres detection de collision
etat=Col(numero)

Un probleme classique avec les fonctions de detection precedentes est qu elles ne donnent qu une indication sur l objet principal touche. Pour savoir quels autres objets sont impliques dans la collision, utilisez la fonction COL.

Indiquez le numero de l objet a verifier (Bob ou Sprite selon le cas), et vous obtiendrez -1 (vrai) si l objet est entre en collision, ou 0 (faux) s il ne l est pas.

Retour    Suivant
07.04.04