Obligement - L'Amiga au maximum

Jeudi 05 juin 2025 - 14:33  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


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]