la taille peut etre modifiee lorsque CHANNEL est utilise avec SCREEN SIZE. Quand le numero de canal est assigne a un numero d ecran de cette maniere, les registres A et Y controleront la largeur et la hauteur de l ecran. Voici un exemple :
E> Load Iff "AMOSPro Examples:Iff/Logo.Iff",0 Channel 0 To Screen Size 0 Screen Display 0,320,1 : Rem Definir la taille de l ecran a 1 A$="Loop: For R0=0 To 255; Let Y=R0; Next R0;" A$=A$+"For R0=0 To 254; Let Y=255-R0; Next R0 ; J Loop" Amal 0,A$ : Amal On: Direct
Creer des effets arc-en-ciel
L utilisation finale de CHANNEL est avec la commande RAINBOW. Comme d habitude,
un numero de canal entre 0 et 63 est assigne a un numero d arc-en-ciel.
Rappelez-vous que les numeros d arc-en-ciel vont de 0 a 3. Le registre X contiendra
le premier numero de couleur de la palette arc-en-ciel a afficher, et en changeant cette
valeur, l arc-en-ciel semblera defiler. Le registre Y contient la ligne de l ecran ou commence
l effet arc-en-ciel. En modifiant cette valeur, vous deplacez l effet vers le haut ou le bas.
Toutes les positions sont en coordonnees materielle. Enfin, le registre A stocke
la hauteur de l arc-en-ciel a l ecran. Revisualisez l effet de defilement arc-en-ciel
dans cet exemple immediat :
LD> Load "AMOSPro_Tutorial:Tutorials/AMAL/AMAL_4.AMOS"
Le systeme Autotest
Normalement, tous les programmes AMAL sont executes en sequence, du debut a la fin.
Certaines routines prennent quelques secondes a terminer, comme une boucle For ... Next ou
une commande Move. Dans la plupart des cas cela ne pose pas de probleme, mais parfois,
des retards se produisent. La fonction Autotest permet de resoudre ces problemes, en
modifiant l ordre d execution des instructions.
L exemple suivant montre exactement ce genre de probleme, qui pourrait beneficier d un Autotest. Dans cet exemple, le Sprite est suppose suivre les mouvements de la souris. Cependant, comme les nouvelles valeurs XM et YM sont prises apres que le mouvement du Sprite soit termine, la routine est trop lente. Essayez de deplacer la souris en cercle pour mieux voir le probleme :
E> Load "AMOSPro_Tutorial:Objects/Sprites.abk" : Get Sprite Palette Sprite 8,130,50,1 Amal 8,"Loop: Let R0=XM-X ; Let R1=YM-Y ; Move R0,R1,50 ; Jump Loop" Amal On: Direct
Apres une explication des commandes Autotest, vous serez capable de re-ecrire cet exemple pour corriger le probleme.
AUTOTEST
Systeme AMAL Autotest
AUtotest (liste de tests)
La fonction est activee avec un appel a AUtotest, suivi d une paire de parentheses contenant la liste des tests a utiliser.