Suivez-nous sur X
|
|
|
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
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : AMOS - Améliorer les déroulement des démos
(Article écrit par Daisy Lionet et extrait d'Amiga News Tech - juin 1991)
|
|
Salut ! Daisy au clavier. Laissez-moi me présenter : je suis le chien de l'individu innommable dont vous
venez de terminer l'article. Merci à Stéphane Schreiber de me
permettre de m'exprimer enfin (NDLR : de rien !).
J'appartiens donc à la gente canine, et suis une superbe femelle de race indéfinie mais néanmoins harmonieuse,
d'un caractère agréable et constant, avec une préférence pour les pantalons bruns qui ont plus de goût...
Le malheur a voulu que j'atterrisse chez mon maître actuel. Je ne sais ce qu'il a pu vous raconter,
mais moi je vais vous dire la vérité vraie : je suis l'unique auteur de d'AMOS. Eh oui, aussi incroyable que
cela puisse paraître, François Lionet n'est qu'un imposteur ! Dès qu'il a découvert mes talents en
programmation, il m'a attachée au clavier de l'Amiga et m'a obligée à produire 1 ko de langage
machine par jour ! Si je n'avais pas atteint ce quota, je n'avais pas droit à ma nourriture.
Pour éviter de sombrer dans la dépression nerveuse, j'ai entrepris la programmation d'un bon nombre de
démos dès qu'il avait le dos tourné. Tous les mois, si je suis encore en vie, je viendrai vous en
proposer une. Mes démos ont en commun leur thème : le système d'exploitation, ce met délicieux que - hélas - je
ne peux goûter très souvent !
Avant toute chose, allez donc voir le listing de notre première démo, au bas de l'article.
Pour faire fonctionner cette démos, vous devez charger en mode direct une banque de musique.
Choisissez-la de préférence plutôt rhytmée. Éteignez la lumière et fixez l'écran pendant
quelques heures : vous aurez gagné un aller simple pour l'hôpital psychiatrique le plus proche.
Quelques mots sur cette superbe programmation. Pour obtenir les effets de moirage, la
démo utilise une illusion d'optique que vous pouvez facilement recréer : dessinez des
lignes parallèles proches sur une feuille de papier et sur un papier calque. Faites
bouger la seconde feuille sur la première : les moires apparaissent aussitôt. On peut
recréer un tel effet sur Amiga, en utilisant le mode double champ de jeu ("dual playfield").
La première partie du programme ouvre deux écrans en double champ de jeu d'une taille bien supérieure
à celle de l'affichage. Les écrans sont ensuite cachés (SCREEN HIDE) pour procéder au
dessin des cercles. Un petit écran est ouvert pour faire patienter, et la musique est démarrée.
Les deux écrans ne sont en fait que des VU-mètres. Le défilement est obtenu très facilement
en modifiant les valeurs des décalages des écrans (CHANNEL TO SCREEN OFFSET). La voix 0 est
affectée à la coordonnée en X de l'écran 0, la voix 1 à la coordonnée Y, les voix 2 et
3 aux coordonnées X et Y de l'écran 1. Tout le travail est effectué sous interruption grâce
à deux chaînes AMAL.
Lesquelles chaînes AMAL ne diffèrent très peu : ne change que le numéro des voix dans l'instruction
"=Vu()". Plutôt que de réécrire la chaîne en entier, il vaut mieux rechercher les instructions
"Vu()" dans la première chaîne (INSTR), et modifier les numéros des voix avec l'instruction "MIDS".
Vous pourrez même automatiser le processus pour plus de deux canaux.
Une fois AMAL initialisé, le programme dessine dans l'un des écrans de nombreux cercles
concentriques, puis la chose la plus importante de la démo : le système d'exploitation ! Cette partie
prend 23 secondes (le dessin de cercles n'est pas des plus rapides en AMOS : j'ai dû
garder les routines de François).
L'animation est lancée par AMAL ON. Les deux écrans bougent alors automatiquement.
Le programme n'a plus qu'à modifier les couleurs des écrans avec "FADE", et à tester l'appui sur
une touche du clavier.
Vous pouvez insérer cette démo dans une autre, et faire, par exemple, un défilement
de texte dans un troisième écran : l'animation étant faite par AMAL, vous pouvez continuer à
travailler en AMOS.
Bon, j'espère avoir remonté le niveau de la rubrique AMOS de l'ANT. Il faut quand même avouer
qu'on voit clairement, en lisant mes programmes, qu'il n'y a aucune comparaison entre lui et moi !
Le mois prochain si tout va bien, je vous proposerai une nouvelle démo.
Améliorer le déroulement des démos
La plupart des démos ont une animation au 1/50e de seconde. Le moindre petit défaut
dans le déroulement saute immédiatement aux yeux.
Les deux petites procédures qui suivent vont vous permettre de bloquer tous
les autres programmes de l'Amiga (dont celui du lecteur de disquette),
vous pourrez ainsi récupérer à votre profit toute la puissance de la machine.
Attention : cette routine bloque tout l'Amiga, y compris le système de validation
des disquettes. Vous ne devez pas appeler "FORBID" avant d'être sûr que la lumière du
lecteur de disquette est éteinte !
Procedure F0RBID
F=Execall(-132)
End Proc
Procedure PERMIT
F=Execall(-138)
End Proc
|
Appelez "F0RBID" au début de votre programme et établissez le multitâche
à la fin grâce à "PERMTT". La seule entrée de votre programme sera alors la
souris. Le clavier, les ports, tout restera figé !
Note : F0RBID s'écrit avec un zéro à la place du "O", pour éviter que l'AMOS
ne le prenne pour un For-Next... Si vous faites un FORBID (avec la lettre "O") sur une machine
plus complexe qu'un A500, je vous conseille fortement d'effectuer une réinitialisation
à la fin du programme : les auteurs du système de l'Amiga déconseillent fortement
l'utilisation prolongée de cette instruction.
|