Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BBC BASIC

COLOUR

DESCRIPTION.


L'instruction COLOUR définit la couleur d'affichage des textes ou personnalise la palette de couleurs de la fenêtre de sortie.




SYNTAXE.


COLOUR couleur 

COLOUR couleur , code 

COLOUR couleur , rouge , vert , bleu




REMARQUES.


couleur doit être un nombre entier compris entre 0 et 255. Si couleur est :

- inférieur à 128, il s'agit de la couleur logique de l'avant-plan ;

- supérieur à 127, il s'agit de la couleur logique de l'arrière-plan.


Si couleur est supérieur au nombre de couleurs de la palette : 2, 4 ou 16 selon le mode de la fenêtre de sortie, la couleur sélectionnée sera calculée comme suit, où max est le nombre de couleurs dans la palette : 

- couleur MOD max si couleur est inférieur à 128 ; 

- 128 + ( couleur MOD max ) si couleur est supérieur à 127.


code doit être un nombre entier compris entre 0 et 15, mais ne devra pas dépasser le nombre maximum de couleurs de la palette d'origine de la fenêtre de sortie moins 1.


rouge, vert et bleu doivent être des nombres entiers compris entre 0 et 255, et indique la quantité de chaque composant de la nouvelle couleur associée à code dans la palette de couleur. 


Convention : selon le mode de la fenêtre de sortie choisie, une palette utile de 2, 4 ou 16 couleurs est initialisée avec les 2, 4 ou 16 couleurs de la palette d'origine. Ensuite, une couleur associée à un des codes de la palette utile peut est modifiée, mais l'association code-couleur de la palette d'origine est immuable. 


Pour maintenir la rétrocompatibilité avec les versions anglaise et américaine du BBC BASIC, il est possible d'utiliser la syntaxe COLOR à la place de COLOUR. Dans ce cas, l'instruction COLOR sera automatiquement convertie en COLOUR par l'IDE.

 


La forme  COLOUR couleur, modifie la couleur d'avant-plan ou d'arrière.


Pour connaitre quelles sont les couleurs actuellement sélectionnées, on utilisera la variable système : 

- @vdu.t.c&, qui retourne la couleur d'avant-plan actuelle pour les textes ;

- @vdu.t.d&, qui retourne la couleur d'arrière-plan actuelle pour les textes.


Rappel : quand on fait appel à une variable système, il est conseillé de fait marque une légère pause au programme avec la fonction WAIT() afin de s'assurer que les traitements en cours sont bien terminés et que les valeurs de ces variables ont bien été mise à jour.

MODE 8

REPEAT

COLOUR RND( 15 ) 

COLOUR 128 + RND( 15 )

CLS : CLG

WAIT( 10 )

PRINT "couleur de l'encre : " ; @vdu.t.c&

PRINT "couleur du papier : " ; @vdu.t.d&

PRINT 

PRINT "Appuyer Q pour quitter ou sur une autre touche pour continuer."

kchoix$ = GET$

UNTIL kchoix$ = "Q" OR kchoix$ = "q"

END



La forme COLOUR couleur , code permet de modifier la couleur logique associée à la valeur de couleur dans la palette utile. La valeur de code désigne toujours la couleur logique de la palette d'origine, même si COLOUR couleur , code a modifié la couleur logique associée à couleur dans la palette utile.

- couleur indique quel code de la palette utile devra changer ;

- code indique quelle est la couleur de la palette d'origine qui devra être associée à code.



La forme COLOUR couleur , rouge , vert , bleu permet de modifier les composants RVB de la couleur physique associée au code de la palette utile :

- couleur indique quel code de la palette utile devra changer ;

- rouge indique la quantité de rouge que contiendra la couleur physique associée à code ; 

- vert indique la quantité de vert que contiendra la couleur physique associée à code ; 

- bleu indique la quantité de bleu que contiendra la couleur physique associée à code.



On notera que les changements d'association des couleurs de la palette utile n'affectent pas les affichages précédents, textes et/ou dessins et que l'instruction GCOL tiendra compte de ces modifications de couleur liées aux codes de la palette utile dans les futurs tracés.



La couleur d'arrière-plan des textes ne sera modifiée après l'utilisation de l'instruction CLG. De même, les couleurs des dessins, d'avant-plan et d'arrière-plan ne sont pas modifiées par une instruction COLOUR, quelle que soit la forme utilisée. 


voir GCOL pour plus de détails sur les couleurs d'affichage des dessins. 



COLOUR couleur est un synonyme de VDU 17 , couleur.

COLOUR couleur , code est un synonyme de VDU 19 , couleur , code , 0 , 0 , 0.

COLOUR couleur , rouge , vert , bleu est un synonyme de VDU 19 , couleur , 16 , rouge , vert , bleu.



La qualité de l'affichage des textes et des couleurs dépendent beaucoup du MODE utilisé, mais aussi du matériel et de l'environnement : Linux, Windows, navigateur, ... sur lequel le programme est exécuté. Dans certains cas, des caractères peuvent ne pas être affichés, sans qu'une erreur de script en soit responsable. 




RUBRIQUES.


Les dessins et les graphismes pour plus de détails sur la création de dessins et de graphismes.

La gestion des couleurs pour plus de détails sur la gestion des couleurs logiques et physiques.




EXEMPLE.


1. Modifier les couleurs d'avant-plan et d'arrière-plan des caractères affichés.

MODE 8

FOR kcouleur = 0 TO 127

COLOUR kcouleur

COLOUR 255 - kcouleur

PRINT CHR$( 129 ) ;

NEXT kcouleur

END



2. Modifier l'association des couleurs dans la palette utile de la fenêtre de sortie.

MODE 8

COLOUR 10 : PRINT "BBC BASIC" : REM - Affiche BBC BASIC en vert

COLOUR 13 : PRINT "BBC BASIC" : REM - Affiche BBC BASIC en fuchsia

GCOL 10 : RECTANGLE FILL 50 , 200 , 200 , 50 : REM - Affiche un rectangle vert

GCOL 13 : RECTANGLE FILL 300 , 200 , 200 , 50 : REM - Affiche un rectangle fuchsia

PRINT

COLOUR 13 , 12 : REM - code 13 corresponds maintenant au code 12 de la palette d'origine

COLOUR 10 , 13 : REM - code 10 corresponds maintenant au code 13 de la palette d'origine

COLOUR 10 : PRINT "BBC BASIC" : REM - Affiche BBC BASIC en fuchsia

COLOUR 13 : PRINT "BBC BASIC" : REM - Affiche BBC BASIC en bleu

GCOL 10 : RECTANGLE FILL 50 , 100 , 200 , 50 : REM - Affiche un rectangle fuchsia

GCOL 13 : RECTANGLE FILL 300 , 100 , 200 , 50 : REM - Affiche un rectangle bleu


retourne

BBC BASIC  BBC BASIC

BBC BASIC  BBC BASIC


████████   ████████

████████   ████████



On remarque bien que : 

- les changements de couleurs n'affectent pas les affichages précédents ;

- l'instruction GCOL tient compte des modifications de couleur liées aux codes de la palette utile, 

- COLOUR 13 , 12 change la couleur 13 de la palette utile en fuchsia qui est la couleur 12 de la palette d'origine ;

- COLOUR 10 , 13 change la couleur 12 de la palette utile 

- en bleu qui est la couleur 13 de la palette d'origine et ;

- et non en fuchsia qui est devenu la couleur 13 de la palette utile.



3. Modifier les composant RVB d'une couleur.

MODE 8

REPEAT

CLS : CLG

PRINT "Appuyez sur Q pour Quitter ou sur une autre"

PRINT "touche pour obtenir une autre palette aléatoire."

PRINT

FOR kcouleur = 1 TO 15 : REM - A partir de 1 pour que la couleur du fond reste en noir

krouge = RND( 255 )

kvert = RND( 255 )

kbleu = RND( 255 )

COLOUR kcouleur , krouge , kvert , kbleu

COLOUR kcouleur : PRINT kcouleur ; " : " ; krouge ; " - " ; kvert ; " - " ; kbleu

GCOL kcouleur : RECTANGLE FILL 60 , ( 930 - ( kcouleur * 32 ) ) , 50 , 31 

NEXT kcouleur 

kpause$ = GET$

UNTIL  kpause$ = "Q" OR kpause$ = "q"

PRINT TAB( 0 , 27 ) "Fin du test; Au revoir." 

END

Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour

TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER

avec un exemple de résolution à télécharger pour vous inspirer.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse