Les registres internes R0 et R1 permettent de controler les animations. Chaque Objet anime possede son propre jeu de registres AMAL. Mais si plusieurs Objets sont animes ensemble, il peut etre necessaire de leur attribuer les memes valeurs de registre. Bien que cela soit possible avec la fonction AMREG, il est plus simple d utiliser une instruction unique comme AMPLAY pour affecter plusieurs Objets simultanement.
Quand des parametres de vitesse et de direction sont passes a AMPLAY, ils sont charges dans les registres R0 (vitesse) et R1 (direction) des canaux choisis. La vitesse correspond a un delai entre les mouvements, en 50emes de seconde. Voici les valeurs de direction possibles :
Valeur Direction >0 Mouvement dans le sens original 0 Mouvement en sens inverse -1 Arret du mouvement, passe a l instruction suivante
Les parametres de vitesse ou de direction peuvent etre omis si inutile. Par defaut, AMPLAY agit sur tous les canaux AMAL actifs. Mais vous pouvez aussi definir une plage de canaux a affecter :
X> Amplay ,0 : Rem Inverser les objets Amplay 2, : Rem Ralentir la vitesse Amplay 3,1 : Rem Vitesse 3, direction 1 Amplay ,-1 3 To 6 : Rem Arreter les canaux 3 a 6
CHANAN
fonction : tester si un canal contient une animation active
valeur = Chanan(numero de canal)
Cette fonction verifie si un canal AMAL specifie est actuellement anime. Elle retourne -1 (vrai) si l animation est active, sinon 0 (faux). Exemple :
E> Load "AMOSPro Tutorial:Objects/Sprites.abk" : Get Sprite Palette Sprite 9,150,150,1 M$="Anim 12,(1,4)(2,4)" Amal 9,M$ : Amal On : Wait Vbl While Chanan(9) Wend Print "Animation terminee !"
CHANMV
fonction : tester si un Objet d un canal est en mouvement
valeur = Chanmv(numero de canal)
La fonction CHANMV permet de verifier si l Objet affecte a un canal est en cours de deplacement.