La fonction CHANMV retourne la valeur -1 (vrai) si l Objet est en mouvement, sinon 0 (faux). En combinaison avec l instruction Move, CHANMV permet de verifier si une sequence de deplacement est terminee. On peut ensuite redemarrer le mouvement a la nouvelle position. Exemple :
E> Load "AMOSPro Tutorial:Objects/Sprites.abk" : Get Sprite Palette Sprite 9,90,30,1 M$="Move 300,150,150; Move -300,-150,75" Amal 9,M$ : Amal On While Chanmv(9) Wend Print "Deplacement termine !"
Erreurs AMAL
AMALERR
fonction : donne la position d une erreur AMAL
position = Amalerr
La fonction AMALERR retourne la position dans la chaine d animation ou une erreur a ete detectee. Cela permet de localiser et corriger rapidement les erreurs AMAL. Tapez exactement cet exemple :
E> Load "AMOSPro Tutorial:Objects/Sprites.Abk" : Get Sprite Palette Sprite 8,100,100,1 A$="L: IF X=300 Jump L; Pause; Let X=X+1; Jump L" Amal 8,A$ : Amal On : Direct
Cet exemple genere une erreur car "IF" est interprete comme deux instructions AMAL : "I" et "F", au lieu d une structure If. Pour localiser l erreur dans la chaine, tapez :
D> Print Mid$(A$,Amalerr,Amalerr+5)
Messages d erreur AMAL
Des qu une erreur est detectee dans un programme AMAL, Amos revient au mode Basic avec un message d erreur. Voici une liste des erreurs possibles et leurs causes probables :
Bank not reserved
Vous avez utilise l instruction PLay sans charger le bank
contenant les donnees de mouvement.
Ce bank doit etre cree avec l accessoire AMAL.
Si vous n utilisez pas PLay, assurez-vous que vos instructions
Pause et Let sont bien separees.