くまちゃんのiOS/Androidゲームプログラミング

マイペースでゲームつくってます。

ゲームプログラミングのはなし3

【ゲームプログラミングのはなし3】
前回は色の説明だけで終わってしまいましたね。ややこしいことには、色の扱いはRGBの他にもCMYK(シアン、マゼンタ、イエロー、ブラック)がありますし、透過率のアルファブレンディングの値もあったり、何よりもデータ形式bmp, png, jpegやらなんやら複数存在するので、ムキーッ!となること請け合いです。

まあ、基本的にゲームをプログラミングする環境では指定されているファイル形式しか使えないので、それに従うしかないのですけども。例えばWindowsならbmpMacならpngが基本ですね。

で、画像とは大量の色データのかたまりというのを理解した次にすべきことは、そのデータをゲームで使うために「読み込む」ことをせねばなりません。

...え?すでにPCの中にファイルが存在するではないか?

はい、画像ファイルはあるんですが、それをゲームでグリングリン自在に動かすために、ゲームを立ち上げた時にメモリに読み込んで、番号(名前でもいいのですが)を割り当てないといけません。ああメンドクサイ。

そして、この画像ファイルの読み込みが最初の鬼門なんです。

まずもって先ほど説明したとおり、画像ファイルの形式がイロイロある中で、今からプログラミングするOSが指定するファイル形式を把握し、用意しなければいけません。イマドキの画像ソフトなら自在に変換してくれますが。

そして、大抵はOSに規定されている画像読み込み用の関数(一連の処理をするかたまり)を呼び出すだけでいいのですが、成功するかヒヤヒヤものなのです。

いや、フツーはうまく行くはずなんですよ。なぜヒヤヒヤするかというと、失敗した時の原因追求がとんでもなくメンドクサイからなのです。

これは前作でもさんざん書きましたが、現代OSの複雑化と関係しているのです。原因追求がメンドクサイことになっている最大の理由は、

「そもそもドコに画像データを読み込んでいるのかわからない」

というものですかね。プログラマーは画像データの置き場所を指定出来なくて、OS様に委ねなくてはなりませぬ。無慈悲なことに、プログラマー側ではどうしようもない原因で読み込み失敗する場合もなきにしもあらずです。プログラマーはそんな事態に備え、

「...OS様、タイヘン恐縮ですが、ワタクシメの指定した"hogehoge.bmp"という名前の画像データは無事読み込み終え、その読み込み先が割り当てられましたでしょうか?」

といちいちフォローするコードも書かねばならないのです。...ってまだ画像の読み込みすら終わらないですね。(まだまだ続く)

https://itunes.apple.com/jp/app/kumachanmeizu/id886937682?mt=8&uo=4&at=10l8JW&ct=hatenablog