Collisions avec des blocs rectangulaires
La derniere partie de ce chapitre explique comment effectuer des verifications rapides pour savoir si un objet est entre dans une zone rectangulaire de l ecran. Ces "zones" peuvent etre utilisees pour la detection de collisions dans les jeux, mais aussi pour creer des boutons, panneaux de controle ou boites de dialogue.
RESERVE ZONE
instruction : reserver de la memoire pour une zone de detection
Reserve Zone
Reserve Zone numero
Cette commande doit etre utilisee pour allouer assez de memoire pour le nombre exact de zones souhaitees, avant d utiliser SET ZONE. Le seul reelement limite est la memoire disponible.
Pour effacer toutes les definitions de zones actuelles et restituer la memoire au programme principal, utilisez simplement RESERVE ZONE sans parametre.
SET ZONE
instruction : definir une zone de l ecran a tester
Set Zone numero,x1,y1 To x2,y2
Apres avoir reserve la memoire, utilisez SET ZONE pour definir une zone rectangulaire a tester. Donnez le numero de la zone, puis ses coordonnees du coin superieur gauche (x1,y1) jusqu au coin inferieur droit (x2,y2).
ZONE
fonction : retourne le numero de zone sous les coordonnees specifiees
numero=Zone(x,y)
numero=Zone(numero ecran,x,y)
La fonction ZONE retourne le numero de la zone a l emplacement specifie (x,y). Les coordonnees sont relatives a l ecran courant, sauf si un numero d ecran est donne.
Si aucune zone ne se trouve a ces coordonnees, la valeur retournee est 0 (faux). Sinon, le numero de la premiere zone trouvee est retourne.
Cette fonction peut etre combinee avec X BOB et Y BOB pour verifier si un Bob est entre dans une zone specifique, comme ceci :
X> N=Zone(X Bob(n),Y Bob(n))