Chapitre 7 — Texte en couleurs
Les chapitres précédents ont fourni de nombreux renseignements dans le cas où vous n'aviez jamais
rencontré ce genre de choses auparavant. Si vous souffrez d'indigestion mentale, cette partie est
un peu plus légère, juste pour laisser le temps nécessaire pour que la suite soit plus confortable.
Plus tard, cela deviendra une seconde nature.
Dans cette section, je voudrais m'étendre un peu plus sur
PRINT pour vous montrer comment
imprimer en superbe
Technicolor
au lieu du noir et blanc que nous avons jusque là utilisé. Le changement de couleur du texte est facile
et il implique un nouveau mot-clé :
COLOUR
(« BB4W »
accepte aussi
COLOR).
En général, il y a 16 couleurs utilisables pour égayer notre texte, mais attention :
le nombre exact de couleurs disponibles dépend du
MODE choisi.
À cause de restrictions dans les premiers micro-ordinateurs comme le
BBC Micro (« Beeb »)
de chez Acorn, des modes d'écran différents avaient des résolutions différentes et,
pour ne pas dépenser trop de mémoire, différents nombres de couleurs. Pour changer de mode,
on se sert de la commande
MODE
suivie du numéro du mode que vous voulez appeler. Chaque mode a une résolution différente,
en ce qui concerne le nombre de colonnes en largeur, de lignes en hauteur et de couleurs disponibles.
Par exemple, le
MODE 4
a 40 colonnes sur 32 lignes, et seulement deux couleurs.
On peut utiliser de nombreux modes d'écran et vous trouverez tous les détails les concernant
à la rubrique
MODE
des fichiers de
l'Aide en ligne.
La plupart des exemples donnés ici sont dans le mode par défaut, sauf s'il est indiqué autrement,
et ainsi les 16 couleurs sont toutes disponibles. On choisit la couleur en utilisant un nombre
qui représente chaque couleur. Ces nombres sont :
| 0 | Noir | 8 | Noir haute intensité (gris) |
| 1 | Rouge | 9 | Rouge haute intensité |
| 2 | Vert | 10 | Vert haute intensité |
| 3 | Jaune | 11 | Jaune haute intensité |
| 4 | Bleu | 12 | Bleu haute intensité |
| 5 | Magenta (bleu-rouge) | 13 | Magenta haute intensité |
| 6 | Cyan (bleu-vert) | 14 | Cyan haute intensité |
| 7 | Blanc | 15 | Blanc haute intensité |
Si vous imaginez de l'encre et du papier, on appelle souvent la couleur de l'encre la couleur
de premier plan (le texte), et la couleur du papier l'arrière-plan (le fond).
Pour changer la couleur du texte, nous nous contentons d'écrire
COLOUR X,
où X est l'un des nombres ci-dessus, de 0 à 15. À la prochaine utilisation de
PRINT, le texte sera affiché
dans cette couleur. Facile.
REM Couleur du texte
COLOUR 4
PRINT "Je suis bleu !"
END
Lorsque le programme se termine, il laisse les couleurs de premier plan et d'arrière-plan dans l'état
où elles étaient lors de leur dernière sélection. Normalement, il est correct de remettre les choses
dans l'état où on les a trouvées, aussi nous devrions peut-être modifier le programme ci-dessus
pour en faire :
REM Couleur du texte
COLOUR 4
PRINT "Je suis bleu !"
COLOUR 0
END
On peut aussi utiliser
COLOUR pour changer
la couleur du fond. Pour ce faire, nous ajoutons 128 aux nombres du tableau ci-dessus,
et tout texte affiché à la suite aura pour fond la couleur choisie. Certains programmeurs présentent
en fait ceci comme une somme, aussi est-ce un peu plus facile à lire parce qu'on économise un
calcul mental. J'aime bien ça ; mon calcul mental n'a jamais été trop brillant :
c'est à vous de voir.
REM Couleur du fond
COLOUR 128+6
PRINT "Bonjour, tout le monde"
COLOUR 128+15
END
Vous devez utiliser une instruction
COLOUR différente
chaque fois que vous changez le premier plan ou l'arrière-plan.
REM Couleurs du texte et du fond
COLOUR 4
COLOUR 128+6
PRINT "Bonjour, tout le monde"
COLOUR 0
COLOUR 128+15
END
Si vous changez d'écrans dans votre programme, vous voudrez souvent effacer le tableau pour que
les informations de l'écran précédent ne se mêlent pas à l'écran en cours. Le
BASIC a une commande
pour faire cela :
CLS.
Cela signifie « CLear Screen » [« Effacer l'écran »],
et économise la frappe. C'est très simple à utiliser ; trois lettres, et l'écran précédent
est relégué au fin fond de l'histoire :
REM CLS démonstration
PRINT TAB(29,10);"BBC BASIC for Windows"
WAIT 200
CLS
PRINT TAB(32,10);"C'est le top !"
END
Dans le cas où nous voudrions changer la couleur de la totalité de l'écran, choisissons
en premier le fond, puis appelons
CLS, comme ceci :
REM Couleur du fond d'écran
COLOUR 128+7
CLS
COLOUR 2
PRINT TAB(10,10);"Bonjour, tout le monde"
COLOUR 0
END
Pour un mode qui ne contient que peu de couleurs, il est possible d'utiliser la commande
COLOUR pour substituer aux
couleurs par défaut des couleurs prises dans le tableau ci-dessus. Les couleurs par défaut pour le mode 4
sont un fond noir avec du texte blanc. Pour changer la couleur du texte et avoir du magenta, utilisez
COLOUR 1,5 comme
ceci :
REM Réglage de la couleur d'écran
MODE 4
PRINT "Couleur par défaut"
COLOUR 1,5
PRINT "Couleur de substitution"
END
Voilà un intéressant point soulevé. Chaque mode a un nombre de couleurs disponibles. Le mode 4 a deux
couleurs : 0 et 1 ; le mode 5 en a quatre : de 0 à 3, et ainsi de suite.
En utilisant
COLOUR X%,
la véritable couleur du texte ne correspondra peut-être pas directement au tableau ci-dessus.
Il vaut mieux dire que chaque mode a un certain nombre de cases dans chacune desquelles est insérée
l'une des seize couleurs. Si nous n'aimons pas la couleur que le
BASIC choisit par défaut
pour cette case, nous pouvons la changer pour une autre comme dans l'exemple précédent. La case
est considérée comme le nombre logique, et la couleur comme le nombre physique.
Il arrive que les seize couleurs par défaut ne soient tout simplement pas suffisantes.
C'est comme quand votre mère ne veut rien d'autre que du Rose Coucher de Soleil pour la salle de bains.
Comme on vient de le voir, il est possible de demander au
BASIC d'échanger la couleur
que nous ne voulons pas avec d'autres, prises dans le tableau des seize, mais nous pouvons aussi créer
nos propres couleurs et les substituer à celles du tableau dans les cases logiques. Nous pouvons imaginer
chaque couleur comme un mélange de rouge, de vert et de bleu – ce qu'elle est
véritablement – et dire au
BASIC :
« Pour la couleur 3, n'affiche pas du jaune ; affiche ma nouvelle couleur avec
tel mélange de rouge, de vert et de bleu. » Pour faire cela, nous utilisons
COLOUR avec quatre
paramètres : le premier est le numéro de la couleur que nous voulons modifier ; le second,
le troisième et le quatrième sont respectivement la composante rouge, verte et bleue, chacune comprise
dans l'étendue de 0 à 255. Par exemple, pour changer la couleur 3 en orange
(rouge = 255, vert = 128, bleu = 0), nous ferions ce qui suit :
REM Changement de couleurs
REM Changer la couleur 3 en orange
COLOUR 3,255,128,0
REM La couleur est définie ; on la change
COLOUR 3
PRINT "Bonjour, tout le monde"
COLOUR 0
END
Même quand le programme s'arrête, la couleur gardera sa nouvelle valeur. Vous pouvez aussi changer
la couleur autant de fois que vous le voulez, et à chaque fois, les
PRINT suivants utiliseront la nouvelle
couleur sans affecter ce qui a déjà été affiché avec cet index de couleurs :
REM Changement de couleurs
REM Changer la couleur 3 en orange
COLOUR 3,255,128,0
REM La couleur est définie ; on la change
COLOUR 3
PRINT "Bonjour, tout le monde"
REM Changer la couleur 3 en marron
COLOUR 3,128,64,0
PRINT "Bonjour, tout le monde"
COLOUR 0
END
Quand une couleur a été redéfinie, il est très facile de revenir à la couleur d'origine pour
cette case particulière. Si nous sommes en mode à seize couleurs, substituez simplement le code
de couleur correct pris dans notre petit tableau, et la couleur par défaut sera restaurée.
Pour d'autres modes, voyez dans
l'Aide en ligne
qui vous dira quelles sont les couleurs par défaut pour ce mode.
Si vous vous êtes vraiment laissé aller, et que vous avez changé beaucoup de couleurs, vous voulez
sans doute restaurer les couleurs par défaut.
« BB4W »
a une commande spéciale qui fera exactement cela. Cette commande appartient à une famille de commandes
qui affectent toutes la sortie vers l'écran d'une façon ou d'une autre, et sont pour cela appelées
les commandes
VDU.
Pour appeler cette famille, servons-nous de
VDU
suivi d'un ou plusieurs nombres. Les effets de la commande
VDU
dépendent du nombre qui suit et sont intégralement décrits dans l'aide. Nous avons besoin de
VDU 20. Voici ce qu'il faut faire :
REM Restauration des couleurs
MODE 6
REM Changer la couleur 3 en orange
COLOUR 3,255,128,0
REM La couleur est définie ; on la change
COLOUR 3
PRINT "Bonjour, tout le monde"
REM Restaurer les couleurs par défaut
VDU 20
REM Sélectionner à nouveau couleur du texte
OLOUR 3
PRINT "Bonjour, tout le monde"
END
La restauration des couleurs avec
VDU 20 restaure aussi le choix par défaut pour les couleurs d'arrière-plan
et le premier plan.
Un truc : Changement de couleurs pendant l'affichage
|
Nous pouvons intégrer des commandes de couleurs dans une variable chaîne. Ainsi, nous pouvons
changer les couleurs à la volée pendant l'affichage. Pour faire ceci, on se sert de
CHR$(17)
suivi de
CHR$(X)
(X étant le numéro de la couleur) avant la chaîne à afficher :
REM Changement de couleurs en cours de route
PRINT CHR$(17)+CHR$(4)+"Bonjour";
PRINT CHR$(17)+CHR$(5)+" tout le monde"
COLOUR 0
END
Dans cet exemple,
CHR$(17)
agit de la même façon que la commande
COLOUR.
Évidemment, cela peut être difficile à lire, aussi, si vous vous en servez souvent, vous pouvez
préparer des chaînes qui contiennent la déclaration de ces informations :
REM Changement de couleurs en cours de route
Bleu$=CHR$(17)+CHR$(4)
Jaune$=CHR$(17)+CHR$(5)
PRINT Bleu$+"Bonjour"+Jaune$+" tout le monde"
END
|
Exercices
07.1
Examinez les différents
MODEs
dans le fichier de
l'Aide en ligne. (Mettez-vous dans l'Éditeur et appuyez sur
F1 .
Essayez d'afficher du texte dans les
MODEs
1 à 6 pour vous entraîner à voir comment ils se comportent.
07.2
Modifiez le programme « Changement de couleurs » (ci-dessus) pour produire de nouvelles
couleurs aléatoires en vous servant trois fois de l'instruction
RND(255) dans l'utilisation
des lignes 3 et 8.
Fin du Chapitre 7
|