Obligement - L'Amiga au maximum

Jeudi 25 avril 2024 - 01:36  

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 : Blitz Basic - les bases
(Article écrit par Jérôme Marchal - avril 2003)


To Blitz or not to Blitz... That's the question...

Pour introduire cette rubrique, je pense que la question à se poser est la suivante : pourquoi le Blitz Basic ?

A première vue et ce d'après son nom, il n'a pas grand-chose d'exceptionnel. Un Basic de plus parmi tant d'autres. Qu'a-t-il de plus que les autres ? Bonne question et à une bonne question vous avez droit à une bonne réponse.

Blitz Basic vs AMOS & Co

Vous connaissez tous AMOS et ce même si vous ne l'avez jamais pratiqué. A première vue, il s'agit là de deux Basic destinés à l'Amiga... Mais qu'est-ce qui fait que le Blitz est supérieur ? Pour commencer il faut retourner au source d'AMOS pour comprendre que ce langage n'est pas né sur Amiga mais sur... Atari ! A l'origine, ce langage ne s'appelait pas AMOS mais STOS et après le décollage fulgurant de l'Amiga, AMOS arriva bien vite sur nos plates-formes. Le gros problème était qu'AMOS ne gérait pas du tout Intuition et qu'il relevait donc du quasi impossible de créer quoi que se soit qui puisse tourner en multitâche et ce, sans ouvrir son propre écran. L'autre gros problème avec AMOS comme avec les autres Basic d'ailleurs, c'est que l'on est obligé d'utiliser des routines préfabriquées. En bref, avant il fallait choisir entre la performance d'un langage évolué mais très compliqué à programmer, ou la simplicité du Basic très peu optimisé... avant oui... Mais entre-temps naquit le Blitz Basic...

Basic certes, mais performant

L'idée de base du Blitz était des plus simples ; utiliser le langage Basic le plus simple du monde tout en lui ouvrant des portes jusqu'alors réservées à l'assembleur ; le tout en parfaite harmonie avec Intuition. En ce sens, il vous est possible d'utiliser de l'assembleur dans vos programmes et ainsi de vous passer des routines préfabriquées trop lentes à votre goût pour tout optimiser au maximum. Toute la force du Blitz est là. Simplicitée dans un premier temps, puis optimisation maximum dans un second temps.

Pourquoi pas le Blitz Basic ?

Nous avons maintenant largement vanté les mérites du Blitz alors la question est, qu'y a-t-il à lui reprocher ? Dans le fond et à première vue pas grand-chose, mais dans la pratique... Pour commencer, il faut bien comprendre que ce langage n'est plus développé et ce, depuis un certain temps, bien avant les PowerPC et la démocratisation des cartes graphiques. Dans la pratique, ce n'est pas vraiment une catastrophe car tout repose sur un système de bibliothèques et que bon nombre de développeurs continuent à produire de nouvelles bibliothèques qui vous permettent de quasiment tout faire. A part ça ? Et bien beaucoup de petites choses mais dans la pratique tous ces inconvénients réunis pèsent bien peu dans la balance face aux mille et unes merveilles que nous permet de réaliser le Blitz et ce, en seulement quelques lignes. J'aurais du faire commercial chez Acid Software moi... :)

Les bases...

Les routines de base sont très simples. Pour conclure ces prémices au Blitz Basic nous allons ici ouvrir un simple écran puis une simple fenêtre, faire glisser nos premières lignes de textes. Bref, voici notre premier texte défilant ("slidetext") en moins de trente lignes !

-[DEBUT DU CODE SOURCE]-------------------------------------

WBSTARTUP

         SCREEN 0,0,0,320,256,1,0,"",0,0
         WINDOW 0,0,0,320,256,$0800,"",1,2

                  RGB 0,0,0,0
                  RGB 1,15,15,15

         a=256

                  MENUS OFF

REPEAT

         WLOCATE 0,a
                  NPRINT "OBLIGEMENT SCROLL TEXT"
         WLOCATE 0,a+8
                  NPRINT "(c) jAy / grIm PRoJeCT"
         WLOCATE 0,a+16
                  NPRINT "                      "
         WLOCATE 0,a+24
                  NPRINT "! SIMPLE MAIS EFFICACE !"
         WLOCATE 0,a+32
                  NPRINT "                        "
         WLOCATE 0,a+48
                  NPRINT "Faites vos propres essais"
         WLOCATE 0,a+56
                  NPRINT "Rajoutez des lignes à volonté !"
         WLOCATE 0,a+64
                  NPRINT "                               "
 
         a=a-1

         VWAIT 2

UNTIL a=-104

MOUSEWAIT

         CLOSEWINDOW 0
         CLOSESCREEN 0

END

-[FIN DU CODE SOURCE]---------------------------------------

Explications

Je vais maintenant vous expliquer ligne par ligne ce que l'on vient de faire.

WBSTARTUP = Très simple. Cette instruction rend notre programme exécutable depuis le Workbench.

SCREEN a,b,c,d,e,f,g,"h",i,j

a = C'est le numéro de l'écran. Très utile lorsque vous en utilisez plusieurs.
b = La position horizontale du coin en haut à gauche de notre écran.
c = La position verticale du coin en haut à gauche de notre écran.
d = La largeur de l'écran en pixels.
e = La hauteur de l'écran en pixels.
f = La profondeur en bits de l'écran (8 bits = 256 couleurs).
g = Le mode d'affichage... nous verrons cela ultérieurement.
h = Le titre qui apparaît dans le barre de menus en haut de l'écran.
i & j = Couleur d'arrière et d'avant plan.

WINDOW a,b,c,d,e,f,"g",h,i

a = C'est le numéro de la fenêtre. Très utile lorsque vous en utilisez plusieurs.
b = La position horizontale du coin en haut à gauche de notre fenêtre.
c = La position verticale du coin en haut à gauche de notre fenêtre.
d = La largeur de la fenêtre en pixels.
e = La hauteur de la fenêtre en pixels.
f = Les drapeaux... nous verrons cela dans un prochain cours.
g = Le nom de notre fenêtre.
h & i = Couleur d'arrière et d'avant plan.

RGB a,b,c,d = sert à définir les couleurs RGB.

a = Numéros de la couleur dans la palette.
b = Taux de rouge de 0 à 15.
c = Taux de vert de 0 à 15.
b = Taux de bleu de 0 à 15.

a=256... bah, on met la valeur 256 dans "a" c'est tout !

MENUS ON ou MENUS OFF = permet d'activer ou de désactiver les menus.

REPEAT = répète ce qui suit jusqu'à ce qu'une instruction lui dise quoi faire (voir UNTIL plus bas).

WLOCATE a,b = On se positionne dans notre fenêtre. "a" définissant l'horizontale et "b" la verticale.

NPRINT "a" = On écrit "a" dans la fenêtre à l'endroit définit par WLOCATE ou à la ligne suivante si pas de WLOCATE.

a=a-1 = On enlève 1 de "a" à chaque passage sur cette instruction.

VWAIT x = On fait une pause de "x" rafraîchissement d'écran.

UNTIL a=x = Va avec la fonction REPEAT. On répète une suite d'instructions jusqu'à ce que "a" sois égale à "x".

MOUSEWAIT = Tout est figé tant que l'utilisateur n'a pas cliqué sur la souris.

CLOSEWINDOW a = On ferme la fenêtre "a".

CLOSESCREEN a = On ferme l'écran "a" (attention : toujours fermer toutes les fenêtres avant de fermer l'écran !).

END = Fin de programme. On rend la main au Workbench.

Dernières petites explications

Si dans nos WLOCATE on se décale de 8 en 8, c'est parce que faute d'avoir précisé quoi que ce soit, le système utilise la police de caractères de base en taille 8... logique non ? ;) Tout ce programme n'est basé que sur un décalage de l'instruction NPRINT dans une fenêtre... Il existe bien évidemment des solutions autrement bien plus propres et efficaces que celle-ci pour faire glisser un texte. Cette méthode a été retenue car elle nous permettait de voir plusieurs instructions de base qui nous seront essentielles pour la suite de nos cours.

Le mot de la fin

J'attends vos réactions sur le sujet. N'hésitez pas à me contacter, soit directement en contactant Daff, notre rédac chef préféré, avec l'adresse électronique du magazine.

Dans notre prochain cours, nous essayerons de faire plus ample connaissance avec Intuition, ses fenêtres, ses boutons... Mais en attendant... Codez bien !


[Retour en haut] / [Retour aux articles] [Article suivant]


Soutenez le travail d'Obligement