En supposant que la largeur totale ne depasse jamais 128 pixels, vous eviterez tout desastre.
Sprites materiels versus sprites calcules
Le plus grand probleme lors de l utilisation des sprites calcules est que vous ne savez jamais exactement quel sprite materiel sera assigne a un objet donne. Chaque sprite calcule peut etre forme a partir d un melange de sprites materiels, et ce melange change a chaque fois que l objet est deplace a l ecran.
Cela peut causer de gros problemes, surtout si vous devez animer des objets qui doivent rester visibles dans de nombreuses combinaisons de sprites. Dans ces cas, il est utile d assigner un groupe specifique de sprites materiels a un seul objet. La commande SPRITE permet d affecter directement un sprite avec un numero entre 0 et 7. Par exemple, la ligne suivante assigne le sprite materiel numero 2 a l image numero 1, et le place aux coordonnees 200,100 :
X> Sprite 2,200,100,1
Apres qu un sprite a ete reserve de cette facon, il est retire du systeme de sprites calcules, ce qui reduit le nombre de sprites calcules disponibles a l ecran.
Si l image utilisee est plus large que 16 pixels, AMOS Professional assignera automatiquement des sprites materiels supplementaires pour cet objet. Ces sprites seront assignes en ordre consecutif, a partir du sprite initial.
Reprenons la ligne ci-dessus. Supposons que l image numero 1 mesure 30 par 20 pixels et contient trois couleurs. La commande SPRITE prendra automatiquement les sprites 2 et 3. Toute tentative d afficher le sprite 3 plus tard echouera, car il est deja utilise. Vous seriez alors limite aux sprites materiels 0,1,4,5,6 et 7, ce qui reduit fortement les possibilites de sprites calcules.
Il est aussi important de comprendre qu un sprite 15-couleurs utilise en fait une paire de sprites 3-couleurs. Le materiel de l Amiga permet de combiner des paires de sprites selon les groupes suivants :
0 et 1, 2 et 3, 4 et 5, 6 et 7.
Donc, il est essentiel d assigner les images 15-couleurs a des numeros de sprites pairs, sinon AMOS Professional utilisera la paire suivante, ce qui gaspille un sprite.
Une section de resolution des problemes se trouve a la fin de ce chapitre pour repondre aux questions les plus frequentes. En attendant, vous pouvez charger ce programme exemple qui montre les avantages des sprites calcules sur les bobs :
D> Load "AMOSPro Tutorials:Tutorials/Sprites_v_Bobs.AMOS"