ゲームプログラミングのはなし2
【ゲームプログラミングのはなし2】
ゲームプログラミングで何を差し置いてもまず最初にやらなければならないことは、「画像の描画」です。
まあ、「表示」と言ってもいいんですけど、英語でdrawの単語を使うので、日本語ではあまり使わないのですがあえて「描画」と言っています。
それにしても、この画像の描画がまあ〜難しいのですよ。ゲームプログラミングにとって、最初のカベです。
コンピュータにとって、テキストを表示することは全然難しくなく、ゆえにプログラムもとっても簡単です。そもそも昔から、テキストを表示しなければコンピュータは計算結果をニンゲンに伝えることができませんから、まっさきに備え付けられる機能です。プログラミングの入門でも、最初は画面に"Hello World"を表示するのが慣わしとなっています。仕組みも単純で、表示したい文字に割り振られている「文字コード」をポイッとOSに投げつけるだけのシンプルさです。
ところが、画像となると全くはなしが変わってしまい、仕組みが一気に複雑になります。
そもそも、コンピュータにとって「画像」とはどう見えているのかを考える必要があります。
テキストは、一文字ずつ文字コードが割り振られていました。では、画像は?
これは「大量の色のデータのかたまり」なのです。代表的なのは色の三原則である赤・緑・青(RGB)それぞれがどれだけ含まれているかを表す形式ですね。例えば、黒は各成分が全くない00, 00, 00。逆に白は各成分がフルで入って255, 255, 255。
ここで、255という数字を用いているのは、コンピュータでは扱い易い1Byte(バイト)という単位からきています。1Byteは0〜255まで扱うことができます。つまり、赤・緑・青の各成分を256段階に分けて扱うこととする、と考えるのです。ニンゲンが。そうすると、扱える色の総数は、256×256×256=16777216色というワケです。いわゆるフルカラーというと、コンピュータ的にはコレのことで、24bitカラーとも言います。1Byte=8bitなので、8bit x 8bit x 8bit = 24bit。今では当たり前になってあまり見かけなくなりましたが、昔はWindowsのディスプレイの設定で見たことがある方もいらっしゃるのではないでしょうか。
...って、ホラッ!色のことだけでこんなに字数が必要なんですよ。ぜんっぜん前に進まないでしょ。それぐらい、画像ってタイヘンなんですよ...; (続く)