Supposons que vous testiez le Bob 1 pour une collision avec les Bobs 2, 3 et 4. Le test initial pourrait ressembler a ceci :
X> C=Bob Col(1,2 To 4)
Apres detection d une collision, vous pouvez verifier les autres objets avec la fonction COL, comme suit :
X> For B=2 To 4 If Col(B) Then Print "Collision avec le Bob numero ";B Next B
Une version plus rapide permet d identifier directement l objet entre en collision :
X> object=Col(-1)
Cela retourne le numero de l objet ayant collide avec votre cible, ou 0 si aucune collision n a eu lieu. L exemple devient alors :
X> C=Bob Col(1,2 To 4) Print "Collision avec le Bob numero ";Col(-1)
L equivalent AMAL de cette fonction est C. Les deux sont ideales pour detecter les collisions entre "hostiles" et "amis". Il suffit de tester chaque objet avec BOB COL ou SPRITE COL, puis de recuperer le numero de l objet implique avec la fonction COL.
SET HARDCOL
instruction : definir le registre materiel pour la detection de collision des Sprites materiels
Set Hardcol bitmap1 ,bitmap2
Cette commande est reservee aux programmeurs avances. Elle active la detection de collision par le materiel pour les Sprites (de 0 a 7 uniquement — pas les Sprites calcules).
Le registre CLXCON est configure via deux parametres :
- bitmap1 : active les bits 12,13,14 et 15 du registre CLXCON
- bitmap2 : configure la comparaison (bits 0 a 5)
Pour plus de details techniques, consultez le manuel materiel de l Amiga.
HARDCOL
fonction : retourne le statut de collision materielle apres un Set Hardcol
c=Hardcol
Une fois le registre configure via SET HARDCOL, la fonction HARDCOL lit le registre CLXDAT et retourne 0 (faux) s il n y a pas de collision, ou -1 (vrai) si une collision est detectee.
Vous pouvez ensuite utiliser la fonction COL pour connaitre le numero du Sprite concerne.