Obligement - L'Amiga au maximum

Samedi 18 novembre 2017 - 05:42  

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 : GFA Basic - chargement d'une animation
(Article écrit par Pierre-Philippe Launay et extrait d'Amiga News - novembre 1991)


Le codage de ce mois propose le défilement ("scrolling" en anglais) de trois textes ayant chacun une vitesse différente. En réalité, ce n'est pas un vrai défilement mais plutôt l'utilisation judicieuse des commandes TEXT et GET/PUT. Pour éviter les surprises, j'ai dû insérer un délais de 1/50e seconde. Cette pause devient obligatoire lorsque vous travaillez sous compilation ou avec une carte accélératrice.

Simultanément, je provoque une interruption tous les 2/10e seconde afin de changer périodiquement l'image de la girafe. Cette girafe a été dessinée sous Deluxe Paint par Cathy. Comme l'animation comprend ici trois images, elle a d'abord dessiné trois rectangles identiques. En examinant le codage, vous verrez qu'il faut prendre garde à laisser une bordure vide de 5 points sur tous les côtés. Elle a ensuite dessiné les trois aspects de la girafe en faisant attention à garder certaines parties communes grâce à l'option "Brosse" de Deluxe Paint.

GFA Basic

Il ne lui restait plus qu'à utiliser le programme Démo/IFF TO BOB pour charger l'image de base. Je lui ai demandé de sauver ses trois girafes sous la forme de chaîne GET/PUT et avec les noms GIRAFFE0.LPP, GIRAFFE1.LPP et GIRAFFE2.LPP.

Au fait, cela devient une habitude, il y a encore et toujours trois erreurs qui résistent encore et toujours à l'envahisseur. La première erreur est une faute de syntaxe que vous signalera aussitôt l'éditeur. La deuxième est une absurdité logique tant que n'aura pas été découvert le voyage intertemporel. La troisième est la mauvaise compréhension du système des interruptions sous compilation. Ceux qui ne possèdent que le tiers de l'outil de développement (le GFA Basic 3.042 seul, sans GFA Compiler 3.52F et sans un assembleur tel que Devpak 2.34+ ou ASMOne) ne s'apercevront pas de ce troisième bogue.

Tout langage évolué (GFA, C, BCPL, AMAL...) sait gérer les interruptions. La gestion de celles-ci est cependant mieux réalisée quand on s'amuse directement sur un codage écrit en assembleur.

Une interruption est une situation de crise de l'Amiga. Amiga et toutes les machines à base de microprocesseurs 680x0 tournent sans arrêt en rond jusqu'à la perception d'un événement insolite : le son, le début d'une nouvelle ligne écran, etc. La page 417 de la nouvelle Bible de l'Amiga est très explicite. Quand survient ce changement dans le ron-ron des calculs, le microprocesseur examine quelle est le type de la perturbation. Il se dirige alors sur une table où sont répertoriées toutes les adresses de chacune des routines d'interruption. Certaines interruptions reviennent tout le temps comme par exemple le changement de ligne lors du dessin de l'écran sur le moniteur. Mieux, l'électronique les provoque à une fréquence constante.

Quand vous voulez réaliser une animation fluide (ici la girafe), il suffit donc de modifier périodiquement l'adresse d'une telle routine. Vous lui faites faire un détour par une procédure de votre cru qui consiste en l'affichage de votre nouveau dessin. En GFA, il suffit d'écrire :

AFTERtick%GOSUBanimation

Ou bien :

EVERYtick%GOSUBanimation

Le farfadet long "tick%" est un multiple de l'intervalle de temps 50 Hertz soit 0,02 seconde. Je préfère "AFTER" qui permet une plus grande souplesse mais qui oblige à rajouter de nouveau "AFTER" dans la routine d'interruption (ici la procédure animation).

GFA Basic
GFA Basic
GFA Basic


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