Obligement - L'Amiga au maximum

Samedi 16 décembre 2017 - 02:19  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : AMOS - Effets de transition
(Article écrit par Denis Bernard et extrait d'Amiga News - janvier 1994)


Comme je vous l'ai montré le mois dernier, on peut vraiment réaliser de chouettes effets avec bien peu de choses, comme par exemple, un effet de transition d'une image à une autre en quelques lignes d'AMOS.

Il ne s'agit pas là d'utiliser les commandes "Appear" ou "Fade" dont les applications sont vraiment restreintes, mais une routine maison qui fait apparaître progressivement l'image sous la forme d'une mosaïque.

Quelques mots sur les transition

Pour ceux qui ne le sauraient pas, ce qu'on appelle transition est le passage d'une image affichée à l'écran à une autre image. Cela peut se passer de différentes façons, la plus courante étant d'afficher directement la seconde image.

On peut aussi passer par un "Fade" : les couleurs de l'image actuelle deviennent toutes progressivement noires (ou d'une autre couleur) puis on exécute l'opération inverse pour laisser apparaître progressivement la seconde image. Il y a ensuite les méthodes par superposition : la seconde image recouvre progressivement l'image actuelle pour finir par prendre complètement sa place à l'écran. C'est ensuite la façon dont le recouvrement se fait qui permet d'obtenir encore d'autres effets (rideau, escalier, mosaïque, volet...).

Parmi les transitions que je n'ai pas citées, il y a celles agissant directement sur le "Screen Display" de l'écran courant, en le faisant disparaître vers le haut ou vers le bas, ou sur le "Screen Display" de l'écran à afficher, en le faisant arriver par le haut ou par le bas et par-dessus l'écran courant. Après ce petit tour d'horizon, nous allons étudier de plus près le programme mettant en oeuvre une transition par superposition des deux images, celle que j'ai appelée mosaïque. Le nom n'est peut-être pas fabuleux mais il est assez représentatif de l'effet obtenu.

Le programme

Il s'agit de faire apparaître une image à l'écran par petits carrés (ici de 8x8 pixels) et à des positions aléatoires. En effet, il y aurait bien peu d'intérêt à les afficher les uns à la suite des autres ligne par ligne, bien sagement. Partons donc du fait que nous avons deux écrans (l'un affiché, l'autre caché, dans lequel on travaille) de largeur SX et de hauteur SY. Chaque carré est de côté BSIZE. Notez qu'il est préférable que SX et SY soient des multiples de BSIZE et que la transition devient très lente si vous prenez une valeur inférieure à 4 pixels.

Le calcul du nombre de carrés est assez simple : SX/BSIZE en largeur et SY/BSIZE en hauteur, ce qui nous donne un total de NBT=SX*SY/BSIZE^2.

Pour faire apparaître aléatoirement chacun de ces carrés, on utilise un tableau de NBT éléments dans lequel on va mettre aléatoirement toutes les valeurs entre 0 et NBT. En fait, c'est comme si on battait un jeu de cartes. Pour y arriver, on initialise d'abord le tableau avec toutes les valeurs de 0 à NBT (dans l'ordre), et à chaque fois qu'on mélange les cartes (procédure SHUFFLE) on échange le contenu de deux éléments du tableau pris au hasard, et on recommence NBT fois. Cette méthode n'est pas excellente statistiquement mais elle convient parfaitement pour notre application et en plus elle est très très rapide. Si vous souhaitez vous essayer sur ce genre de routine, n'oubliez pas que chaque valeur ne doit apparaître qu'une seule fois dans le tableau !

Ensuite, il ne reste plus qu'à exploiter le contenu de notre tableau (qui contient des valeurs entre 0 et NBT-1). C'est le rôle de la procédure T_TRANSIT qui pour chaque élément du tableau T(), calcule les coordonnées du carré correspondant et le copie de l'écran 1 vers l'écran 0.

J'allais oublier de vous parler de la procédure DESSIN qui dessine n'importe quoi dans l'écran 1. Vous pouvez donc la remplacer par un "Load Iff", ou tout autre façon de le remplir, adaptée au contexte dans lequel vous allez réutiliser cette routine.

Conclusion

Voilà, vous n'avez plus qu'à taper ce magnifique programme dans votre éditeur, à le lancer et à appuyer sur une touche lorsque le son de la cloche se fait entendre.

AMOS
AMOS
AMOS


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]