Obligement - L'Amiga au maximum

Vendredi 17 novembre 2017 - 22:18  

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 - couleurs et mouvements
(Article écrit par Denis Bernard et extrait d'Amiga News - mai 1994)


Vous vous souvenez sans doute des lunettes à intensification de lumière (Cf. cet article) ? Nous allons ici réutiliser la commande Set Bob pour obtenir un autre effet encore plus rigolo. J'en profiterai au passage pour vous montrer comment simuler un mouvement avec accélération.

Si le mot bitplane vous laisse perplexe, ou encore si vous ne savez pas très bien à quoi ça sert, je vous conseille vivement de relire l'article précité, sinon vous ne saurez pas de quoi je parle dans la première partie. Toutefois, le gros du programme étant consacré au mouvement d'objets, ce n'est pas très grave si vous ne savez pas ce qu'est un bitplane : ne cherchez pas non plus dans le dictionnaire, ils sont en train d'en enlever tous les mots à tendance anglophone...

Couleurs

Afin d'utiliser au mieux la commande "Palette", vous avez appris comment on fabrique les couleurs en vidéo : à l'aide des trois couleurs primaires, le rouge, le vert et le bleu, d'où le sigle RVB (ou RGB pour la notation anglaise). Pour obtenir du jaune, on combine le rouge et le vert, pour le cyan, c'est le vert et le bleu et enfin pour le magenta, c'est le rouge et le bleu. Ça n'a pas l'air du tout logique (surtout pour ceux qui ont fait un peu de peinture à l'école) mais ça marche.

Il serait donc intéressant de voir à l'écran comment ça se passe. Entrez donc ce magnifique programme dans votre éditeur, et si vous ne voulez voir que l'effet du mixage des couleurs, vous êtes dispensé de taper toute la partie comprise entre l'instruction "Repeat" et "Until Mouse Key=2" (qui ne fait qu'animer trois spots)... Ça y est ? Vous voyez donc qu'en plus de trois nouvelles couleurs, on obtient une zone blanche au centre qui correspond à nos trois couleurs primaires combinées ensemble. Essayez aussi la combinaison Cyan-Magenta-Jaune. L'astuce réside dans l'organisation de la palette et une bonne utilisation de la commande Set Bob. Nous avons trois bobs (en forme de disque) :
  • Bob 1 : rouge, tracé uniquement dans le plan 0 (Set Bob 1,,1,)
  • Bob 2 : vert tracé uniquement dans le plan 1 (Set Bob 2,,2,)
  • Bob 3 : bleu tracé uniquement dans le plan 2 (Set Bob 3,,4,)
Il faut donc que les couleurs 1, 2 et 4 de notre palette soient respectivement rouge, verte et bleue.

Voyons maintenant les couleurs composées :
  • Couleur 3 : correspond aux plans 0 et 1 (%11=3), combinaison du rouge et du vert, donc jaune ($FF0)
  • Couleur 5 : correspond aux plans 0 et 2 (%101=5), combinaison du rouge et du bleu, donc magenta ($F0F)
  • Couleur 6 : correspond aux plans 1 et 2 (%110=6), combinaison du vert et du bleu, donc cyan ($0FF)
  • Couleur 7 : correspond aux plans 0, 1 et 2 (%111=7), combinaison des trois, donc blanc ($FFF)
Et voilà, il ne vous reste plus qu'à expérimenter d'autres combinaisons pour bien maîtriser la chose et pour nous faire de beaux effets rigolos.

Que ceux qui n'ont pas entré la totalité du programme le fassent et voyons maintenant comment gérer des mouvements complexes.

Mouvements

Le mouvement d'un objet est qualifié par son accélération (tableau A()), sa vitesse (tableau V()) et sa position (tableau P()) dans deux dimensions (X et Y) si on étudie son mouvement dans un plan (comme l'écran), ou trois dimensions (X, Y et Z) si on étudie son mouvement dans l'espace, utilisé notamment lorsqu'on fait de la 3D. Pas d'affolement, nous allons nous pencher uniquement sur le mouvement d'un objet en deux dimensions.

Le principe est très simple au niveau de la programmation : il faut d'abord choisir une unité de temps, toute trouvée avec le VBL, qui correspond au moment ou l'écran vidéo est redessiné : sans plus entrer dans les détails, sachez que ça se produit tous les 1/50e de seconde. Maintenant, à chaque nouvelle unité de temps, il faut ajouter l'accélération à la vitesse et la vitesse à la position. Enfantin, non ? Si vous ne saisissez pas le principe, prenez l'exemple d'une voiture : plus vous accélérez, plus vous allez vite et plus vous êtes loin de votre point de départ (je prie nos lecteurs les plus férus en physique d'être indulgents quant à cet exemple un peu simpliste, mais je tente ici de faire ce que l'on appelle de la vulgarisation...).

Le programme de ce mois-ci reproduit plus ou moins le mouvement de balles qui rebondissent. Vous noterez que l'accélération horizontale est nulle et que l'accélération verticale est toujours égale à 1. Effectivement, une fois qu'on a jeté la balle, elle n'a plus d'accélération horizontale, mais elle est toujours soumise à la pesanteur (qui correspond à une accélération agissant sur tout objet en chute libre).

Dans le programme, on lâche donc nos balles avec une vitesse horizontale quelconque et placées au hasard dans l'écran. Ensuite, il n'y a plus qu'à laisser faire la nature jusqu'à ce qu'elles touchent le sol. C'est là que les choses se compliquent : il faut que la balle rebondisse, et pas question d'inverser l'accélération (même si c'est en partie ce qui se passe en réalité), mais plutôt la vitesse verticale (c'est beaucoup plus simple). D'autre part, pour le côté réaliste des choses, si on se contente simplement de changer le signe de la vitesse verticale, notre balle rebondira indéfiniment, ce qui n'est jamais le cas car il y a toujours perte d'énergie. Il faut donc en même temps diminuer un peu cette vitesse (d'une unité par exemple). Enfin, en faisant la même chose pour la vitesse horizontale lorsque la balle touche les bords gauche et droit de l'écran, on obtient quelque chose d'à peu près réaliste.

Voilà, cogitez un peu sur ces quelques principes de base en matières de chromatique et de mouvements pendant que je vous prépare pour le mois prochain une application de tout ceci au déplacement d'une voiture. A'tchao !

AMOS
AMOS


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