Manuel Amos Professional  Sommaire  Index

AMAL


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.

Retour    Suivant
07.06.15