Obligement - L'Amiga au maximum

Mercredi 20 septembre 2017 - 03:52  

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 : AmigaBasic - fonctionnement de certaines instructions de la bibliothèque graphique
(Article écrit par Sébastien Chevrel et extrait d'A-News (Amiga News) - octobre 1988)


Amis passionnés de BASIC qui attendez désespérément une rubrique dédiée à ce langage, vos espoirs sont enfin récompensés. A partir de ce numéro, vous pourrez me retrouver chaque mois (bonjour la galère !) dans cette rubrique AmigaBasic.

Étant donné qu'il existe bon nombre de livres pour débuter, nous aborderons ensemble des problèmes de programmation avancée (sprites, défilements, animations, dessins, gestion des bibliothèques...).

Exemple 1

Comme vous devez le savoir, il existe en AmigaBasic d'intéressantes instructions, capables d'appeler depuis vos programmes des routines en langage machine stockées dans des bibliothèques. Vous trouverez les plus courantes dans le répertoire "BasicDemos" de votre disquette "Extras".

Je vais essayer aujourd'hui de vous expliquer le fonctionnement de certaines instructions de la bibliothèque graphique qui vous aideront, j'en suis sûr.

L'instruction d'appel de la bibliothèque graphique est :

LIBRARY "graphics.library"

...qui ne fonctionnera que si le fichier "graphics.bmap" est dans le répertoire courant. Une fois cette instruction lancée, vous avez accès en théorie à toutes les routines de la bibliothèque. En fait, vous n'avez accès qu'a certaines routines : celles qui ne renvoient aucune valeur. Les autres doivent être déclarées comme fonctions grâce à l'instruction "DECLARE FUNCTION nom de routine& LIBRARY".

Bon, maintenant que vous en avez vraiment ras-le-bol de mon discours théorique, passons à l'action. Regardez attentivement ce programme :

LIBRARY "graphics.library"
CALL SetDrMd& (WINDOW(8),3)
LINE (0,0)-(100,100),1,bf
LINE (0,0)-(100,100),1,bf
CALL SetDrMd& (WINDOW(8),1)
LIBRARY CLOSE

Waaouuh ! Juste le temps de récupérer à la petite cuillère le reste de vos neurones surchauffés avant de commencer les explications. Ce programme charge la bibliothèque graphique, et appelle la routine SetDrMd& qui change le mode d'affichage, dans ce cas en inversion vidéo ("INVERSEVIDEO") la première fois et en "JAM2", mode de base, ensuite.

Les deux instructions "LINE" démontrent que deux affichages identiques en inversion vidéo s'annulent et restaurent l'image de base. Ce principe est utilisé pour le changement de taille et le déplacement des fenêtres.

Exemple 2

A présent, avalez deux ou trois boîtes d'aspirine et essayez ce programme :

LIBRARY "graphics.library"
DECLARE FUNCTION Move& LIBRARY
DEFINE X,Y
TEXT$="ONLY AMIGA MAKES IT POSSIBLE"
WHILE MOUSE(0)=0:WEND
X=MOUSE(1):Y=MOUSE(2)
e&=Move&(WINDOW(8),X,Y)
PRINT TEXT$;
LIBRARY CLOSE

La bibliothèque graphique est à nouveau chargée, mais dans ce cas, on déclare la routine "Move&" comme fonction, c'est-à-dire qu'elle renverra une valeur dans la variable d'appel, ici "e&".

Trois boîtes de raviolis, un pack de bière, deux kilos d'oranges, 100 grammes de disquettes... Je me demande des fois si je ne confond jamais la liste des courses avec mes notes ? Ce programme attend un clic de la souris pour afficher aux coordonnées du pointeur une chaîne de caractères.

Récapitulatif

Un petit récapitulatif des routines avec leur syntaxe :

SetDrIVId& (rastport,mode)
Change le mode d'affichage de la fenêtre activée. Le rastport est le pointeur sur la structure de la fenêtre activée en AmigaBasic WINDOW(8), le mode est au choix : 0=JAM1 - 1=JAM2 - 2=INVERSEVIDEO - 4=COMPLEMENT. On peut combiner les modes en ajoutant la valeur de chacun.

Move& (rastport,x,y). Place le curseur graphique aux coordonnées (x,y). Doit être déclaré.

Flood& (rastport,mode,x,y). Remplissage beaucoup plus rapide et puissant que "PAINT" aux coordonnées (x,y). Pour le mode de remplissage voir "AREAFILL".

Attention : les instructions AREA (100,100) AREAFILL sont nécessaires en début de programme pour utiliser cette routine sans message du très grand et vénéré le gourou.

Voilà, c'est tout! Pour plus de renseignements voir le ROM Kernel Manual Library & Devices. N'hésitez pas à me contacter sur 3615 DEEP BAL WORKBENCH.


[Retour en haut] / [Retour aux articles]