Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 12:18  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


En pratique : CanDo - Animations, brosses animées et synchronisation sonore
(Article écrit par Randy Finch et extrait du Randy Finch's Web Site - janvier 1994)


En 1984, j'ai lu pour la première fois (Compute!, août 1984) qu'un ordinateur nommé Lorraine était développé par Amiga, une petite société informatique. À l'époque, je possédais un Commodore 64 et j'envisageais d'acheter un nouvel ordinateur. Cependant, après avoir lu la description du Lorraine, je décida d'économiser mon argent et de me préparer à l'acheter si jamais il venait à être commercialisé. Je n'étais pas du tout convaincu que cela deviendrait réalité. Plus tard, lorsque j'appris qu'Amiga avait été racheté par Commodore, je devins tout à fait certain que l'ordinateur Lorraine arriverait sur le marché.

Vers septembre ou octobre 1985, le Lorraine, maintenant appelé Amiga 1000, arriva sur le marché. Avec quelques billets en main, je me rendit chez le revendeur le plus proche, qui se trouvait à un peu plus de 100 km, et je commença à étudier cet ordinateur remarquable. L'Amiga était assez cher et je devais être sûr qu'il en valait la peine. Après tout, il n'était pas compatible avec mon Commodore 64. Je devais acheter tous les nouveaux logiciels, le peu qui existait à l'époque. Il y avait trois démos qui me convainquirent vraiement de la puissance de l'Amiga. La première était l'animation Robo-City. C'était génial ! Des robots marchaient dans les rues d'une ville tandis qu'une bouche d'incendie faisait des flexions avec ses tuyaux. Une autre démo était Boing. C'était un gros ballon de plage rouge et blanc qui rebondissait et faisait un gros bang chaque fois qu'il touchait un mur. La troisième démo était Music. Elle transformait le clavier de l'ordinateur en un clavier musical. Divers instruments étaient disponibles pour le son (à propos, Boing et Music fonctionnent toujours sur mon Amiga 2000 accéléré qui exécute AmigaOS 2.1. Hélas, Robo-City ne fonctionne plus). Je dépensa mon argent et j'emporta mon nouvel ordinteur chez moi. Je n'ai jamais regretté cette décision. J'utilise toujours cet Amiga 1000 aujourd'hui.

L'Amiga a parcouru un long chemin. De nombreux modèles différents sont apparus et ont disparu. De plus, avec la puissance croissante de chaque génération, les capacités graphiques et d'animation sont devenues plus spectaculaires (qui peut oublier la première fois qu'il a vu l'animation Juggler ?). Le point fort de l'Amiga depuis le début a été ses capacités graphiques, d'animation et sonores. Ce sont ces caractéristiques qui ont convaincu de nombreuses personnes, dont moi, de l'intérêt de l'Amiga.

Une étape importante dans l'histoire de l'Amiga a été le développement du format de fichier ANIM. Il a permis de normaliser les fichiers d'animation. Plus tard est apparue une variation du format ANIM appelée BrushANIM. Il permettait d'animer des brosses ou des clips. Le format ANIM lui-même a beaucoup évolué. De nombreux schémas de compression différents ont été utilisés, le plus populaire étant le format ANIM-5. Récemment, les formats ANIM-7 et ANIM-8 ont été développés pour permettre aux animations haute résolution d'être jouées en temps réel sur l'Amiga 4000.

Le format de fichier 8SVX, qui existe depuis le début, a permis de normaliser les échantillons sonores. Il est toujours la norme pour les échantillons sonores 8 bits sur Amiga.

CanDo can do animations et son

CanDo a une gestion intégrée dees BrushANIM mais pas pour les ANIM. Un programme utilitaire, AnimToBAnim, est inclus avec CanDo. Il permet de convertir les ANIM en BrushANIM. Un autre programme inclus appelé AnimManager peut être utilisé pour jouer des fichiers ANIM. Il peut communiquer avec un deck CanDo via ARexx. CanDo permet de synchroniser d'autres événements, comme la lecture de sons, avec une animation. CanDo gère également les échantillons sonores 8SVX. Dans cet article, j'aborderai la création de BrushANIMs à partir d'ANIM, la lecture de BrushANIM et d'ANIM, et la synchronisation du son avec une animation.

Conversion des ANIM en BrushANIM

Si vous voulez convertir une ANIM en un BrushANIM en utilisant une méthode familière mais rapide, vous pouvez charger l'ANIM dans Deluxe Paint et suivre la procédure pour saisir l'écran entier dans une BrushANIM. Un moyen beaucoup plus facile est de convertir le fichier ANIM avec le programme utilitaire AnimToBAnim inclus dans CanDo. Malheureusement, le programme ne fonctionne que depuis le CLI. Heureusement, il est très facile à utiliser. Si vous voulez convertir un fichier ANIM nommé "myAnim" en un fichier BrushANIM nommé "myBAnim", tapez simplement la commande suivante dans le CLI :

AnimToBAnim monAnim maBAnim

Cela suppose que le répertoire dans lequel réside AnimToBAnim, normalement le sous-répertoire CLIUtilities du répertoire CanDo, est sur le chemin et que le répertoire courant contient myAnim. La conversion est assez rapide. Sur mon Amiga 2000 accéléré avec un 68030/68882 à 28 MHz utilisant AmigaOS 2.1, j'ai pu convertir un fichier ANIM de 566 894 octets (320x400, 32 couleurs, 40 images) en un fichier BrushANIM de 718 184 octets en 35 secondes.

L'utilitaire AnimToBAnim vous permet également d'extraire une partie seulement du fichier ANIM pour le convertir en fichier BrushANIM. Par exemple, disons que vous voulez convertir une partie d'un dessin de 60x50 commençant à une position de coin supérieur gauche de (130,175) en un fichier BrushANIM. Vous pouvez taper ce qui suit dans le CLI :

AnimToBAnim monAnim maBAnim 130 175 60 50

Cette procédure a pris 8 secondes sur mon Amiga 2000 en utilisant le même fichier ANIM que celui mentionné plus haut. Le fichier BrushANIM résultant avait une longueur de 73 106 octets.

Préparation de l'exécution d'une BrushANIM avec son

Lorsque j'ai commencé à jouer avec les animations et le son en utilisant CanDo, j'ai choisi une animation appropriée pour commencer : celle que j'avais créée pour une présentation dans le cours de mathématiques de ma femme. J'avais écrit un programme C intitulé "3DPlot" qui dessine des fonctions mathématiques tridimensionnelles définies par l'utilisateur (voir Fred Fish 440). J'avais créé 20 images de la fonction N*SIN(X*Y) où "N" variait régulièrement de 2 à -2. En convertissant ces 20 images en une animation (à l'aide de Deluxe Paint), puis en rajoutant les mêmes images dans l'ordre inverse, j'ai pu créer une animation de 40 images montrant comment la forme de la surface de la fonction changeait en fonction du coefficient de la fonction, comme ceci :

CanDo
Figure 1 - huit images d'une animation de 40 images

J'ai converti le fichier ANIM résultant en une BrushANIM en utilisant AnimToBAnim. En fait, c'est le fichier dont j'ai parlé plus tôt, pour la conversion.

L'un des échantillons sonores fournis avec CanDo est un fichier nommé "Boing", qui produit bien sûr un son de boing. J'ai pensé qu'il serait approprié d'ajouter ce son à la lecture de mon animation aux deux points d'expansion maximale de la surface de la fonction, juste avant de commencer sa contraction. J'ai également voulu jouer avec la commande MoveBrushAnim qui permet de définir une vitesse et une accélération pour une BrushANIM. Le résultat est le deck ZPlayBAnim présenté dans le listing 1. Son interface est illustrée dans la figure suivante :

CanDo
Figure 2 - Interface de ZPlayBAnim

L'une des premières choses que j'ai découvertes en jouant la BrushANIM avec CanDo est que vous devez régler la résolution de la fenêtre de la carte sur la résolution de la BrushANIM. Ma BrushANIM a une résolution de 320x400, alors que la carte sur laquelle j'ai joué la première fois avait une résolution de 320x200. Il a bien fonctionné, sauf qu'elle était allongée et que la moitié inférieure manquait. Ce n'est pas une chose rédhibitoire, cependant. Il peut arriver que vous souhaitiez lire une BrushANIM à une résolution différente. CanDo le permet. Une fois la résolution de la carte ajustée à 320x400, la BrushANIM avait l'air bien sauf...

La deuxième chose que j'ai découverte est que les couleurs de l'écran de la carte ne changent pas automatiquement pour correspondre aux couleurs de la BrushANIM. Elles doivent être réglées avant d'afficher la BrushANIM. Encore une fois, ce n'est pas rédhibitoire. En exigeant que les couleurs de la carte soient définies dans le deck de CanDo, vous pouvez facilement reproduire des animations dont les couleurs ont été modifiées. Heureusement, pour ceux qui veulent jouer les BrushANIM avec leurs couleurs originales, il y a un moyen rapide de régler ces couleurs. Chargez la BrushANIM dans Deluxe Paint. Choisissez l'élément de menu "Couleur/Palette/Utiliser la palette de pinceaux". Ceci changera la palette de couleurs de l'écran en celle de la BrushANIM. Enregistrez maintenant la page vierge de Deluxe Paint sur le disque. À partir de la requête "Window" de CanDo (figure 3), faites de la carte une "Picture Window" plutôt qu'une "Normal Window". Sélectionnez le fichier Deluxe Paint que vous avez enregistré plus tôt comme image à utiliser pour la carte (voir le listing 1, section "PictureWindow Definition"). Maintenant, lorsque vous exécutez votre application, la carte aura les mêmes couleurs que votre BrushANIM.

CanDo
Figure 3 - Édition de fenêtres

Lecture de la BAnim

L'interface du programme (figure 2) comporte deux boutons intitulés "Play BAnim" (lire BAnim) et "Stop BAnim" (arrêter BAnim). Je pense que vous pouvez deviner la fonction de chacun d'eux. Veuillez vous référer aux sections appropriées du code dans le listing 1 au cours de la discussion suivante.

Lorsque vous appuyez sur le bouton "Play BAnim", la première commande à exécuter est la commande ShowBrushAnim. Elle spécifie que la BrushANIM nommée "sin(x*y)-40.banim" dans le répertoire "CanDo:anims" doit être affichée dans la fenêtre. Les deux zéros à la fin de la commande indiquent que la position initiale de la BrushANIM doit être à (0,0) par rapport à la fenêtre (coin supérieur gauche). Si la BrushANIM n'est pas déjà chargée, la commande ShowBrushAnim la chargera. Si vous souhaitez charger la BrushANIM sans l'afficher, utilisez la commande "LoadBrushAnim". Elle a la syntaxe suivante :

LoadBrushAnim nom_de_fichier, pseudonyme, loadflags

Une caractéristique intéressante de cette commande est l'utilisation du pseudonyme. Cela vous permet de faire référence à l'animation ultérieurement en utilisant le pseudonyme plutôt que le nom du fichier. Si votre chemin d'accès et votre nom de fichier sont longs, cela peut vous éviter de taper beaucoup de texte. Cependant, il y a un problème. Si vous voulez utiliser l'objet "Animation" du panneau de configuration principal (voir ci-dessous), vous ne pouvez pas donner un pseudonyme à l'objet BrushANIM car l'objet Animation n'accepte que les noms de fichiers. Comme vous pouvez le voir dans le listing 1, j'utilise le nom de fichier partout.

Le code qui suit la commande ShowBrushAnim est une boucle qui s'exécute cinq fois. La boucle se compose de quatre commandes MoveBrushAnim. La commande MoveBrushAnim spécifie comment une BrushANIM doit se déplacer sur l'écran. Une vitesse et/ou une accélération peuvent être spécifiées. Les deux premiers nombres après le nom de fichier définissent les vitesses X et Y, respectivement. Ces valeurs indiquent le nombre de pixels que la BrushANIM doit déplacer dans chaque direction d'une image à l'autre. Les deux nombres suivants, qui sont tous deux mis à zéro dans mon programme, spécifient les accélérations X et Y, respectivement. Ces nombres seront ajoutés à leurs vitesses correspondantes d'une image à l'autre. La dernière valeur indique le nombre d'images qui doivent être affichées pour cette commande MoveBrushAnim. Enfin, le mot clé "QUEUE" est utilisé. Il indique à CanDo que chaque commande MoveBrushAnim doit être placée dans une file d'attente et jouée individuellement. Sans le mot-clé "QUEUE", les quatre commandes MoveBrushAnim seraient additionnées avant de déplacer réellement la BrushANIM. Remarquez que les quatre commandes MoveBrushAnim du listing 1 font en sorte que la BrushANIM se déplace autour des bords d'une boîte. Si le mot-clé "QUEUE" est supprimé de chaque commande, les quatre commandes additionnées ne représentent rien. La BrushANIM ne se déplacera pas du tout. Enfin, la commande "BrushAnims ON" est lancée pour faire bouger la BrushANIM. Si d'autres BrushANIM ont été chargées et affichées, la commande "BrushAnims ON" les fera tous démarrer.

Arrêter la BrushANIM

Le bouton "Stop BAnim" provoque simplement l'exécution de la commande "BrushAnims OFF". Cela arrête la lecture de la BrushANIM, mais elle sera toujours affichée à l'écran. Comme la BrushANIM qui est affichée est en plein écran, le bouton "Stop BAnim" sera effacé lorsqu'elle sera affichée. Cependant, le bouton est toujours actif et, si vous pouvez deviner où cliquer, vous pouvez arrêter l'animation. Une façon d'éviter cela est d'afficher la BAnim sur une carte distincte de l'interface. Un objet KeyInput pourrait être ajouté à la carte affichant l'animation qui permet d'appuyer sur une touche particulière pour afficher la carte de l'interface, à la suite de quoi le bouton "Stop BAnim" pourrait être activé sans qu'il soit nécessaire de deviner. Je laisse cet exercice au lecteur.

Ajout de son

CanDo permet d'exécuter des scripts pour chaque image d'une animation, ou lorsqu'elle atteint sa destination, ou pour toute image spécifiée dans l'animation. Cela se fait par le biais de l'objet "Animation" :

CanDo
Figure 4 - Édition de BrushANIM

Lorsque vous utilisez l'objet Animation, assurez-vous que la combinaison chemin d'accès et nom de fichier de BrushANIM ne dépasse pas 32 caractères. Si c'est le cas, l'objet Animation ne fonctionnera pas correctement.

Je voulais ajouter le son "boing" au tracé de la fonction BrushANIM à ses deux points d'expansion maximale. Ceux-ci se produisent aux images 20 et 40. En spécifiant qu'un script doit s'exécuter à ces images, j'ai pu ajouter les sons dont j'avais besoin. Une seule commande est exécutée pour chacun de ces scripts, la commande "PlaySound". Elle spécifie simplement le nom du fichier contenant le son. Il existe plusieurs options disponibles pour la commande PlaySound, mais elles n'étaient pas nécessaires dans mon programme.

Un dernier problème

Il y a un autre problème que j'ai rencontré lors de la lecture de ma BrushANIM en plein écran. L'imagerie double. La plupart des lecteurs ANIM utilisent la double mise en mémoire tampon, qui affiche une image de l'animation pendant que l'image suivante est générée sur un écran invisible. Une fois que l'image suivante est générée, elle est affichée. L'image suivante est alors générée sur l'autre écran qui est maintenant caché, et ainsi de suite. Les BrushANIM ne sont pas affichés de cette façon dans CanDo. Chaque image est générée sur le même écran. Par conséquent, si l'écran est rafraîchi au milieu de la génération de l'image suivante de l'animation, une partie d'une image peut être mélangée avec l'image suivante, ce qui entraîne une double image. Cela est particulièrement vrai pour les écrans entrelacés. En outre, plus la BrushANIM est grande, plus la probabilité que la double image se produise est élevée.

J'ai utilisé AnimToBAnim pour créer une BrushANIM 50x50 à partir de mon fichier ANIM original. Je l'ai ensuite animé de la même manière que la BrushANIM plein écran. La double image n'était pas perceptible.

Encore un dernier problème

Parfois, le son "boing" est étouffé et devient un son "peuht", comme s'il n'y avait pas assez de temps pour jouer le son complet. J'ai remarqué que cela se produisait plus fréquemment lorsque la souris était déplacée au moment où le son était censé être joué. Je ne suis pas certain de la cause de ce phénomène, mais il semble que si une autre activité se produit sur l'ordinateur, elle interfère avec la lecture du son (j'utilise un Amiga 2000/68030). Peut-être que sur un Amiga 4000, ce ne serait pas un problème.

Utiliser AnimManager

Si vous disposez d'un fichier ANIM que vous souhaitez lire à partir de CanDo et que vous n'avez pas besoin de le déplacer sur l'écran comme vous pouvez le faire avec une BrushANIM, alors AnimManager est la solution. AnimManager est un programme AmigaDOS inclus avec CanDo qui joue un fichier ANIM avec un double tampon mémoire, donc il n'y a pas de problème de double image. AnimManager a une interface ARexx qui permet à CanDo de communiquer avec lui et de le contrôler par des commandes. Le listing 2 est un deck CanDo, intitulé "ZPlayAnim", qui utilise AnimManager pour jouer le fichier ANIM original de la fonction mathématique "étirement et contraction". La première chose à faire dans le programme est d'établir des communications ARexx avec AnimManager. Ceci est accompli dans une routine globale appelée "Communicate".

Établissement de la communication

La première chose que fait la routine Communicate est de configurer un port ARexx que le deck ZPlayAnim écoutera afin de recevoir des informations d'AnimManager. J'ai nommé ce port "ANIMFrameEvent". Ensuite, le programme essaie de trouver le port ARexx d'AnimManager nommé "AnimRexxPort". Si ce port ne peut être trouvé, alors AnimManager n'est pas en train de s'exécuter et une condition d'erreur s'ensuit. L'instruction "IfError" piège l'erreur et tente ensuite de charger AnimManager avec la commande Dos. Remarquez l'option "-t" sur la ligne de commande. Ce paramètre indique à AnimManager le nom du port ARexx auquel il doit s'adresser. Une boucle s'exécute alors dans laquelle des tentatives sont faites pour localiser AnimRexxPort. S'il n'est pas trouvé, le programme CanDo est arrêté. S'il est trouvé, le programme continue.

Votre souhait est ma commande ARexx

La première commande envoyée à AnimManager est "QuickLoadAnim". Cette commande demande à AnimManager de charger un fichier ANIM. Le nom du fichier est un paramètre de la commande QuickLoadAnim. QuickLoadAnim charge un fichier ANIM de manière à ce qu'il ne puisse être lu que vers l'avant. Si vous souhaitez charger un fichier ANIM de telle sorte qu'il puisse être lu vers l'avant et vers l'arrière, la commande LoadAnim doit être utilisée. Cependant, le temps de chargement est plus long car le format du fichier doit être converti au fur et à mesure de son chargement.

Ensuite, la variable chaîne de caractères "Q" est assimilée à un guillemet. Notez que le premier guillemet indique qu'une constante de chaîne de caractères suit. Les deux guillemets suivants indiquent qu'un guillemet littéral fait partie de la chaîne de caractères. Enfin, le quatrième guillemet indique la fin de la constante de chaîne. "Q" est utilisé pour intégrer un guillemet dans les chaînes de commande ARexx. Deux variables de chaîne supplémentaires sont affectées, puis deux autres commandes sont envoyées à AnimManager. Chacune est une commande "SetFrameMark". Cette commande indique à AnimManager de transmettre un message au deck CanDo lorsqu'une image particulière de l'animation est affichée. Le premier paramètre de la commande SetFrameMark spécifie le message à renvoyer ; le second paramètre spécifie le numéro de l'image à laquelle envoyer le message. Mon programme a besoin de savoir quand les images 20 et 40 sont atteintes afin de jouer le son "boing". Le message à renvoyer à l'image 20 est "Frame 20". Le message à renvoyer à l'image 40 est, vous l'avez deviné, "Frame 40". Dans chacun de ces messages, le mot "Frame" est le message, tandis que le "20" et le "40" sont des paramètres.

Exécution du deck ZPlayAnim

Lorsque le deck ZPlayAnim est exécuté, la routine "BeforeAttachment" de la carte "PlayAnim" est exécutée. Cette routine appelle simplement la routine globale "Communicate". La carte PlayAnim est identique à la carte utilisée dans le deck ZPlayBAnim décrit précédemment, sauf qu'elle utilise une fenêtre normale plutôt qu'une fenêtre d'image. Cette dernière n'est pas nécessaire dans ce deck puisque AnimManager affichera l'animation sur son propre écran.

Lorsque le bouton intitulé "Play Anim" est pressé, la routine Communicate est exécutée, au cas où AnimManager ne serait plus en cours d'exécution. Ensuite, la commande "KeyControls On" est envoyée à AnimManager. Ceci indique à AnimManager de permettre à l'utilisateur de contrôler la lecture de l'animation en utilisant le clavier de l'ordinateur. Il existe des touches permettant de modifier la vitesse de lecture, de faire une pause, de parcourir l'animation image par image et de lire l'animation vers l'arrière ou en mode ping-pong. Ces deux dernières commandes ne sont disponibles que lorsque le fichier ANIM est chargé avec LoadAnim plutôt que QuickLoadAnim. Soyez prêt à cliquer sur l'écran d'animation avant d'appuyer sur les touches de contrôle, car même si l'écran d'animation apparaît au-dessus de tous les autres écrans, il n'est pas l'écran actif tant que vous ne cliquez pas dessus. De plus, j'ai découvert que si vous appuyez sur la touche pour jouer une animation en mode ping-pong lorsque QuickLoadAnim est utilisé pour la charger, aucune autre touche de contrôle ne fonctionnera, à l'exception de la touche "Échap" qui permet de quitter le programme.

Ensuite, une commande "AddButton" est envoyée à AnimManager. Cette commande spécifie qu'un bouton invisible doit être ajouté à l'écran d'animation. On demande à AnimManager d'envoyer le message ClickButton au deck CanDo lorsque l'utilisateur clique dans la région du bouton. Le bouton commence dans le coin supérieur gauche de l'écran (0,0) et mesure 50 pixels de large et 50 pixels de haut. Ce bouton permet à l'utilisateur de quitter rapidement AnimManager (en réalité, c'est à des fins pédagogiques puisque la touche "Échap" fonctionne tout aussi bien).

Enfin, la commande "Play Forward" est émise pour lancer l'animation et une variable drapeau AnimButton est définie à "FALSE" (FAUX). Vous en saurez plus sur AnimButton plus tard.

Synchronisation du son

Parce qu'AnimManager a reçu l'instruction de renvoyer le message "FRAME" au deck CanDo chaque fois que les images 20 et 40 sont affichées, un objet ARexx doit être ajouté à la carte (figure 5).

CanDo
Figure 5 - Édition ARexx

Cet objet est nommé "PlaySound". Comme le même son est joué aux images 20 et 40, il n'est pas nécessaire de vérifier le paramètre transmis avec le message "FRAME". Si des sons différents devaient être joués pour les deux images, le paramètre du numéro d'image devrait être vérifié pour déterminer le son à jouer. L'objet ARexx ajouté à la carte PlayAnim attend simplement un message ARexx de "FRAME", puis exécute la commande PlaySound. Quoi de plus simple ?

Quitter AnimManager

Il y a plusieurs façons de quitter AnimManager. L'une d'entre elles consiste à appuyer sur la touche "Échap". Cela ne fonctionnera que si la commande "KeyControls On" a été envoyée à AnimManager.

Une autre façon de quitter AnimManager est de passer à la carte CanDo et d'appuyer sur le bouton "Stop Anim". Cela entraîne l'exécution du script d'événement OnRelease pour le bouton. Il envoie une commande "Quit" à AnimManager.

La troisième façon de quitter AnimManager est d'appuyer sur le bouton invisible créé avec la commande AddButton. Cela amène AnimManager à envoyer un message ClickButton au deck CanDo. Ce message est détecté par un autre objet ARexx nommé "CheckQuit". Lorsque le message est reçu, l'indicateur AnimButton est mis à "TRUE" (VRAI). Pourquoi ne pas simplement envoyer une commande "Quit" à AnimManager à ce stade ? Je vous entends demander. Bonne question. C'est de cette façon que j'ai essayé à l'origine. Chaque fois que je cliquais sur le bouton invisible, l'animation se figeait, et je ne pouvais rien faire d'autre. CanDo était également figé. Cependant, les autres applications continuaient à fonctionner correctement. Il semble que les communications ARexx aient été perturbées d'une manière ou d'une autre. Mais à quoi sert de mettre une variable drapeau à "TRUE" (VRAI) ? Eh bien, à rien, à moins que vous n'ayez une routine qui vérifie qu'AnimButton soit mis à "TRUE" (VRAI). Par conséquent, j'ai ajouté un objet "Timer" (figure 6) réglé pour s'exécuter une fois par seconde.

CanDo
Figure 6 - Éditeur du temps

Chaque seconde, la valeur d'AnimButton est vérifiée. Lorsqu'elle devient égale à "TRUE" (VRAI), AnimManager reçoit des messages lui indiquant de déplacer son écran à l'arrière des autres écrans, puis de quitter. L'écran doit être placé à l'arrière avant de quitter, sinon le programme se figera comme décrit précédemment. Occasionnellement, AnimManager se figeait en utilisant la technique montrée dans le listing 2 ; cependant, c'était rare. Les autres méthodes provoquaient un arrêt sur image dans 100 % des cas.

Conclusion

J'espère que vous avez beaucoup appris des exercices précédents. Je sais que c'est le cas pour moi. L'animation et le son peuvent être très amusants. Il est toujours passionnant de voir une image que vous avez créée se déplacer sur l'écran de l'ordinateur tandis que des sons émanent des haut-parleurs. Il y a beaucoup plus de choses que CanDo peut faire avec les animations et le son, mais cela prendrait trop de place pour tout couvrir dans un seul article.



[Retour en haut] / [Retour aux articles]