[COLOR(2)] コマンド
カラーパレットの色を変更します。
文法 COLOR[=(<パレット番号>, <カラーコード>)]
文例
COLOR=(2,4)
COLOR=(4,&HF00)
COLOR=(PALLET, COLOR)
COLOR
テキスト文字と異なり、グラフィック画面の色の指定は、すべてカラーパレットで行う。
COLOR(2)はこのカラーパレットの色の指定をします。
<パレット番号>は 0から 7(または 0から 15)の8(または16)個の
カラーパレットの固有の番号です。
<カラーコード>は、<パレット番号>に対応する色を規定する数値で、
で指定するパレットモードにより内容が異なります。
パレットモード0の 8色中 8色モードでは、
0から7の<パレット番号>に、0から7の<カラーコード>を割り当てます。
パレットモード1の4096色中 8色モードでは、
0から7の<パレット番号>に、&H000から&HFFFの<カラーコード>を割り当てます。
パレットモード2の4096色中16色モードでは、
0から15の<パレット番号>に、&H000から&HFFFの<カラーコード>を割り当てます。
<パレット番号>は静的に色を設定するものではなく、動的に、その都度色の対応を変える
ことができます。
また、同じ色を、複数の<パレット番号>に割り当てしても良い。
また、単にCOLOR とすると各パレットモードの初期値に戻します。
各パレットモードの初期値は[COLOR(1)] を参照。
[註]16進数 3桁のカラーコードはG(緑)、R(赤)、B(青)の量を表すもので、
[COLOR(1)] で指定する表のとうりです。
サンプル
10 CLS
20 COLOR ,,,,0
30 FOR I=1 TO 7
40 COLOR=(I, 7)
50 NEXT I
60 FOR I=1 TO 7
70 CIRCLE (150+10*I,100) ,100 ,I
80 NEXT I
110 FOR I=1 TO 7
120 COLOR=(I, 7-I+1)
130 NEXT I
140 FOR I=1 TO 7
150 CIRCLE (150+10*I,100) ,100 ,I
160 NEXT I
200 COLOR
900 END
この場合、
20行でカラーモード0の 8色中 8色モードとし、
40行ですべてのパレット番号に白を割り当て、
70行で中心を移動しながらパレット番号(色)も変えて7個の円を描きますが、
全部白色の円です。
120行でパレット番号に通常(初期値)のカラー順序と逆順でカラーを割り当てします。
150行で中心を移動しながらパレット番号(色)も変えて 7個の円を描きますが、左から順に、
白、黄、水色、緑、紫、赤、青色となります。
200行でカラーモード0の 8色中 8色モードを初期値に戻しています。
サンプル
10 CLS
20 COLOR ,,,,2
30 FOR I=1 TO 15
40 COLOR=(I, &HFFF)
50 NEXT I
60 FOR I=1 TO 15
70 CIRCLE (150+10*I,100) ,100 ,I
80 NEXT I
110 FOR I=1 TO 15
120 READ COLNO%
125 COLOR=(I, COLNO%)
130 NEXT I
140 FOR I=1 TO 15
150 CIRCLE (150+10*I,100) ,100 ,I
160 NEXT I
200 COLOR
900 END
910 DATA &HAAA,&HAA0,&HA0A,&HA00,&H0AA,&H0A0,&H00A,&H777
920 DATA &HFFF,&HFF0,&HF0F,&HF00,&H0FF,&H0F0,&H00F,&H000
この場合、
20行でカラーモード2の 4096色中 16色モードとし、
40行ですべてのパレット番号に白を割り当て、
70行で中心を移動しながらパレット番号(色)も変えて15個の円を描きますが、
全部白色の円です。
120行でパレット番号に通常(初期値)のカラー順序と逆順でカラーを割り当てします。
150行で中心を移動しながらパレット番号(色)も変えて 15個の円を描きますが、左から順に、
少し暗い白、少し暗い黄、少し暗い水色、少し暗い緑、少し暗い紫、少し暗い赤、少し
暗い青色、灰色、白、明るい黄、明るい水色、明るい緑、明るい紫、明るい赤、明るい青色
となります。
200行でカラーモード2の 4096色中 16色モードを
初期(8色中 8色モード)に戻しています。