COLOR
COLOR</legend><div class="formatter-content">Instruction qui permet de modifier les couleurs à l'écran, avec des variantes pour l'affichage, pour la modification de la palette de couleurs ou pour les sprites.
Les crochets indiquent un contenu optionnel, et bien qu'un COLOR seul n'ait pas beaucoup d'effet ni d'intérêt a priori, on verra plus bas que ce n'est pas forcément le cas !
Les nombres correspondant aux couleurs sont à choisir en fonction du mode d'affichage dans lequel on se trouve et d'une éventuelle modification de palette.
Les codes de couleur par défaut, hormis le mode graphique SCREEN 8, sont les suivants :
En SCREEN 8, le code couleur est déterminé par la formule suivante :
couleur = 4*intensité rouge + 32*intensité vert + intensité bleu, avec les intensités rouge et bleu pouvant varier de 0 à 7, et l'intensité de bleu pouvant varier de 0 à 3. Ce qui nous donne 256 couleurs au choix.
Pour avoir par exemple le bleu clair "traditionnel", on aura 4*2 + 32*3 + 7 = 8 + 96 +7 = 111.
Cas particulier du SCREEN 6
Le SCREEN 6 n'utilise que les couleurs allant de 0 à 3, mais possède une propriété particulière en ce qui concerne la couleur de bordure : elle peut être hachurée verticalement, en utilisant les codes couleurs allant de 16 à 31. La hachure ne peut comporter que des couleurs utilisables dans ce mode, soit de 0 à 3. Chaque code couleur de 16 à 31 donnera donc des hachures faites à base de combinaisons des couleurs allant de 0 à 3, suivant ce tableau :
Cette fois on modifie les composantes même du code couleur original. Les intensités peuvent ici varier de 0 à 7 chacune.
La syntaxe COLOR=NEW permet ici de reprendre les réglages de la palette par défaut.
Quant à COLOR=RESTORE, son emploi se fait lors du chargement via BLOAD"...", S. Cette commande restaurera les couleurs telles qu'elles étaient lors de la sauvegarde, dans les tables de la VRAM afférentes.
[title=1]Couleur des sprites :[/link]
La première syntaxe sert à déterminer la couleur du sprite dont on donne le numéro, et ce pour les modes graphiques 4, 5, 6, 7 et 8.
Deux variantes sont alors possibles :
- En ajoutant 32 au code couleur, l'instruction ON [lmink=sprite]SPRITE[/link] GOSUB n'est plus prise en compte pour le sprite en question.
- En ajoutant 64 au code couleur, la collision de sprites est également annulée, mais aussi la priorité à l'écran (plus le numéro de plan du sprite est petit, plus il est prioritaire sur les autres) et enfin, en cas de chevauchement avec un autre, une opération logique OR est effectuée entre les codes couleur des 2 sprites pour déterminer la couleur à afficher.
A suivre...
</div></fieldset>
<fieldset class="formatter-container formatter-fieldset" style=""><legend>Affichage :
Syntaxe |
---|
COLOR [couleur d'écriture][, couleur de fond][, couleur de bordure] |
Les crochets indiquent un contenu optionnel, et bien qu'un COLOR seul n'ait pas beaucoup d'effet ni d'intérêt a priori, on verra plus bas que ce n'est pas forcément le cas !
Les nombres correspondant aux couleurs sont à choisir en fonction du mode d'affichage dans lequel on se trouve et d'une éventuelle modification de palette.
Les codes de couleur par défaut, hormis le mode graphique SCREEN 8, sont les suivants :
Code |
Couleur |
Intensité R |
Intensité V |
Intensité B |
Code |
Couleur |
Intensité R |
Intensité V |
Intensité B |
0 |
transparent |
0 |
0 |
0 |
8 |
rouge |
7 |
1 |
1 |
1 |
noir |
0 |
0 |
0 |
9 |
rouge clair |
7 |
3 |
3 |
2 |
vert |
1 |
6 |
1 |
10 |
jaune foncé |
6 |
6 |
1 |
3 |
vert clair |
3 |
7 |
3 |
11 |
jaune clair |
6 |
6 |
4 |
4 |
bleu foncé |
1 |
1 |
7 |
12 |
vert foncé |
1 |
4 |
1 |
5 |
bleu clair |
2 |
3 |
7 |
13 |
magenta |
6 |
2 |
5 |
6 |
rouge foncé |
5 |
1 |
1 |
14 |
gris |
5 |
5 |
5 |
7 |
bleu ciel |
2 |
6 |
7 |
15 |
blanc |
7 |
7 |
7 |
En SCREEN 8, le code couleur est déterminé par la formule suivante :
couleur = 4*intensité rouge + 32*intensité vert + intensité bleu, avec les intensités rouge et bleu pouvant varier de 0 à 7, et l'intensité de bleu pouvant varier de 0 à 3. Ce qui nous donne 256 couleurs au choix.
Pour avoir par exemple le bleu clair "traditionnel", on aura 4*2 + 32*3 + 7 = 8 + 96 +7 = 111.
Cas particulier du SCREEN 6
Le SCREEN 6 n'utilise que les couleurs allant de 0 à 3, mais possède une propriété particulière en ce qui concerne la couleur de bordure : elle peut être hachurée verticalement, en utilisant les codes couleurs allant de 16 à 31. La hachure ne peut comporter que des couleurs utilisables dans ce mode, soit de 0 à 3. Chaque code couleur de 16 à 31 donnera donc des hachures faites à base de combinaisons des couleurs allant de 0 à 3, suivant ce tableau :
Code |
Combinaison |
Code |
Combinaison |
16 |
0-0 |
24 |
2-0 |
17 |
0-1 |
25 |
2-1 |
18 |
0-2 |
26 |
2-2 |
19 |
0-3 |
27 |
2-3 |
20 |
1-0 |
28 |
3-0 |
21 |
1-1 |
29 |
3-1 |
22 |
1-2 |
30 |
3-2 |
23 |
1-3 |
25 |
3-3 |
Exemple |
---|
10 SCREEN 6 20 COLOR 1,1,23 30 GOTO 30 |
Résultat en images |
---|
![]() |
Modification de la palette :
Syntaxe |
---|
COLOR=(code couleur, intensité en rouge, intensité en vert, intensité en bleu) |
COLOR[=NEW] |
COLOR=RESTORE |
Cette fois on modifie les composantes même du code couleur original. Les intensités peuvent ici varier de 0 à 7 chacune.
La syntaxe COLOR=NEW permet ici de reprendre les réglages de la palette par défaut.
Quant à COLOR=RESTORE, son emploi se fait lors du chargement via BLOAD"...", S. Cette commande restaurera les couleurs telles qu'elles étaient lors de la sauvegarde, dans les tables de la VRAM afférentes.
Exemple |
---|
On souhaite modifier la couleur grise de code 14, en un gris plus foncé. Il suffit de taper : COLOR=(14,3,3,3) La couleur 14 sera désormais un gris foncé. Taper ensuite COLOR ou COLOR=NEW aura pour effet de remettre le gris à ses composantes initiales |
[title=1]Couleur des sprites :[/link]
Syntaxe |
---|
COLOR=(code couleur, intensité en rouge, intensité en vert, intensité en bleu) |
COLOR SPRITE (numéro de sprite) = code couleur |
COLOR SPRITE$ (numéro de sprite) = "chaîne de caractères" |
La première syntaxe sert à déterminer la couleur du sprite dont on donne le numéro, et ce pour les modes graphiques 4, 5, 6, 7 et 8.
Deux variantes sont alors possibles :
- En ajoutant 32 au code couleur, l'instruction ON [lmink=sprite]SPRITE[/link] GOSUB n'est plus prise en compte pour le sprite en question.
- En ajoutant 64 au code couleur, la collision de sprites est également annulée, mais aussi la priorité à l'écran (plus le numéro de plan du sprite est petit, plus il est prioritaire sur les autres) et enfin, en cas de chevauchement avec un autre, une opération logique OR est effectuée entre les codes couleur des 2 sprites pour déterminer la couleur à afficher.
Exemple |
---|
10 SCREEN 5 20 A$="" 30 FOR I = 1 TO 8 40 READ A : A$=A$ + CHR$(A) 50 NEXT I 60 SPRITE$(0)=A$ 70 COLOR SPRITE(0)=6 80 PUT SPRITE 0,(100,100),,0 90 DATA 255,99,99,255,255,99,99,99,255 100 GOTO 100 |
Résultat |
---|
Un sprite de couleur rouge sera affiché au point de coordonnées 100,100. Sa couleur lui est donnée par la ligne 70 du programme. |
A suivre...
</div></fieldset>