●VisualC++でコケた。
さすがに1年以上使っていないとほとんど覚えてないもので、どこから手を付けてよいやらちっとも分からないんです。大体、Win用のプログラム、特にゲームは、2作目以降を作る場合は1作目のソースをほとんど流用するんですよね。つまり、基礎的な部分はそれこそ一度しか組んだ事が無い事になるわけで、それを組んだのははるか昔の事。覚えていようはずがありません。というわけで、またしても初心者のようにDirectX関係その他の本を買いあさり、ヘルプをたよりにプログラムを組みはじめたわけですが・・・。
●マルチスレッドでコケた。
僕の買った本に書いてあったゲームの作り方はどうも変で、どう変かというと、その作り方で作るとディスプレイのリフレッシュレートによってゲームの速度が変わってしまうのです(多分)。これではだめなので、自キャラなどを動かす部分(座表計算など)と、描画部分をマルチスレッドにするという手を使う事にしました(つまり、2つの処理を平行して行う)。が、僕はマルチスレッドを使ったアプリを作った事はなく、知識はこれっぽっちもありません。ああ、やったことのないプログラムを組む前にいつも来るこの独特なイヤな気持ち。僕が拒んでも容赦なく込み上げてきます。そして、その気持ちを反映してか、どうもうまく動いてくれません。いつもならちょろちょろいじっていればいつのまにか動くようになるのですが、この日に限ってちっとも成功しないのです。というわけで、あきらめました。何をってVC++を。とりあえず今回はVC++はお預け。あはは。
●DelphiによるDirectXでコケた。
なんか、Delphiユーザーの作ったDirectXのAPI定義ファイルがあるらしくって、とりあえずそれを手に入れて組み込んでみました。すると、おお、サンプルも動く動く。というわけでさっそくさっきまでVC++で組んでいたテストファイルを少しづつDelphiに直していきました。この作業は定数の名前とか、ほとんどVC++のままになっていたので案外楽でした。Delphiならマルチスレッドの組み方も分かっているので(TechWinにて学習(笑))その辺もサクサク完成。そして実行!(とはいったものの、これがコンパイルを通るまではやはり大変だった)おお!動く!星が多重スクロールしている!・・・嬉しい。これであとはあっという間に完成か!と思いきや・・・。
●パレットでコケた。
星はただのランダム色なので最初気付かなかったんだと思いますが、キャラクターを表示してびっくり。なんなんだこのいろは・・・。全然パレットが違っているのです。おっかしい。ちゃんと設定したはずなのに。何度コードを見返しても、原因は分かりません。そこで、いろいろ試してみた所、あるビットマップ(僕の作ったビットマップではない)ではうまく表示されることが分かりました。なんという事でしょう。僕のペイントソフトが悪いのでしょうか。試しにそのうまく表示されたビットマップを僕の
使っているペイントソフトで読み込み、何もいじらないで、もちろん256色のまま保存しました。そしてそのビットマップを使ってみると・・・色が変!!なんと、ペイントソフトのせいだったのです(・・・でも本当の所はそれが原因ではないと思う)。もう少し僕がパレットについて詳しければ良かったのですが、とりあえずWinに来てからパレット関係はまったく言語に任せっきりだったので、ほとんどなにも分かりません。あ〜あ、なんか、やる気がうせてしまいました・・・。
●ヒラキナオリ
もう、こうなったら開き直るしかないでしょ(笑)。結末は最初に書いた通りです。というわけでFrieveによるDirectXゲームはしばらくおあずけです。なんか、参考になる情報があったら是非教えて下さい。本当、お願いしますって。