Dessin de grille
GW-Basic, utilisé par PC-Basic
Programme avec Graphique et Texte
L'un des inconvénients de POSITION. BAS réside dans le dessin de haute précision, c'est-à-dire pixel par pixel.
Il gère sans problème les croquis
de moyenne et grande taille ; mais, soyons francs, un nouveau programme
s'impose, optimisé pour les images de petite taille nécessitant une grande
précision.
GRID.BAS vous propose deux grilles de dix par dix, côte à
côte. Déplacez le curseur à l'aide du pavé numérique et remplissez les cases de
la grille avec la barre d'espace.
Une palette de couleurs complète
est à votre disposition ; parcourez-les en appuyant plusieurs fois sur le signe
plus.
Lorsque vous créez une image dans la grille de gauche, elle est
immédiatement copiée dans la grille de droite.
Cependant, si vous déplacez le curseur vers la grille de droite (en appuyant sur la touche G), tout ce que vous dessinez n'est pas copié dans la grille de gauche.
Pourquoi ?
Pour l'animation.
Si vous créez une animation de deux images pour un personnage, il est fastidieux de devoir redessiner l'image entière pour modifier un détail (comme les extraterrestres qui se tortillent dans le jeu d'arcade classique Space Invaders).
Il serait également particulièrement contraignant de devoir dessiner des images miroir des deux images de l'animation. GRID.BAS résout ce problème en inversant automatiquement les images.
Une fois la touche Échap enfoncée, les quatre images sont enregistrées dans un fichier séquentiel, accompagnées du code permettant de les récupérer.
Il est conseillé d'ouvrir ce fichier avec un éditeur de texte et d'en corriger la mise en forme, notamment en supprimant les espaces superflus entre les parenthèses et les virgules.
Renommer les tableaux peut également s'avérer utile (par défaut, ils s'appellent IMAGE1, IMAGE1R, IMAGE2 et IMAGE2R, le « R » indiquant une image inversée).
Deux versions de GRID.BAS sont fournies ci-dessous.
La première génère un fichier séquentiel qui redessine les images à l'aide de plusieurs instructions PSET.
La seconde, GRID2.BAS, enregistre les coordonnées dans une série d'instructions DATA, puis utilise l'instruction READ pour les afficher à l'écran.
Sans surprise, le code de GRID.BAS (et GRID2.BAS) est structuré de manière similaire à celui de POSITION.BAS.
Après avoir nommé votre fichier séquentiel (ligne 12), de nombreuses instructions PRINT# prennent le relais pour le construire (voir lignes 15, 16, 1023, 1053 et 1120 à 1170).
Une instruction INKEY$ gère les entrées utilisateur, tandis que les instructions LINE construisent les grilles.
Notez que, puisque les grilles sont affichées en couleur 7 (gris), le coloriage des cellules devient complexe si l'utilisateur utilise cette couleur ; voir les lignes 340 à 360 pour plus de détails.
Le code source de GRID2.BAS est identique à celui de GRID.BAS, à l'exception des lignes supplémentaires et/ou de remplacement suivantes :
17 NUM=0
1023 L=L+5:NUM=NUM+12:PRINT #1,L;"DATA ";XX;",";YY ;",";C;",";30-XX;",";YY+30;",";C;",";30-XX+110;",";YY+30;",";C;",";XX+110;",";YY;",";C
1053 L=L+5:NUM=NUM+6:PRINT #1,L;"DATA ";XX+110;",";YY;",";C;",";30-XX+110;",";YY+30;",";C
1112 L=L+5:PRINT #1,L;"FOR A=1
TO ";NUM/3
1114 L=L+5:PRINT #1,L;"READ X, Y, Z"
1116 L=L+5:PRINT
#1,L;"PSET(X,Y),Z"
1118 L=L+5:PRINT #1,L;"NEXT A"
Une amélioration évidente de GRID. BAS ?
Ajoutez plus de grilles, permettant plus d'images d'animation possibles.
De plus, la restriction sur la taille des grilles – seulement dix par dix – devrait peut-être être un peu assouplie (mais pas trop, puisque SCREEN 7 ne vous laisse qu'un espace limité à l'écran).