色の価値

色は人に様々な感情を与えます。
赤色は怒りや恐怖を、
青色は真面目さや哀しさを、
白色は爽やかさや虚しさを、
そして人はその色の効果を様々な場面で使っています。

例えば、本。
ベストセラーになるような切ない恋物語。
その表紙が黒表紙に赤文字タイトルであったなら。
なにか惨劇が起こるのではないか、と疑りたくもなります。
そのため、そういう本は決まってピンクや水色といったきれいな色を使っているものです。

他にも食べ物やポスターなど色を活用するものは非常に多いです。
それだけ重要な色、ゲームだって例外ではないはずです。
というわけで、今回は色の変更に挑戦してみました。

[ FontColor.cpp ]

ファイル名は勢い余ってFontColorと付けてしまいましたが、
プログラムを見ればわかるとおり、背景の色も変えてみています。

プログラムの流れとしましては、
1.出力コンソールのハンドル取得
2.色を入力して指定
3.前景色、背景色を設定
4.出力コンソールのハンドルを閉じる
と、していることは少ない割に長いプログラムです。

今回厄介だなぁと思ったのは色の設定部分。
前景色と背景色を同時に指定するのに、色の引数は一つ。
では、どうやって二つの色を指定するのか?

色は16種類しかないようなので、4ビットで表せます。
そこで、背景色を4ビット左シフトして合計8ビットで表すのです。
色を表す値が「01010011」だとしたら、「0101」が背景色、「0011」が前景色となるわけですね。
その処理を実際にしているのが「foreColor + (backColor << 4)」の部分です。

正直、勉強不足で合っているのか疑問の部分はあるのですが、
とりあえず動いているようなのでひとまずは良しとします。(苦笑)

2008/09/10(水)20:45
戻る コメント