シューティングテンプレート、ほぼ完成
abdev 7月 14th, 2005終盤、テクスチャ表示の際のtu、tvのズレでてこずりましたが、無事、「シューティングテンプレート」ということで作業が一段落しました。後は、キャラクタの追加、場面設定、効果音、BGMの充実などを行うだけです。えー、それと、背景のスクロールが未完成なんで、それはまた考えないとなりませんな。
「テクスチャ表示の際のtu、tvのズレ」の問題について触れておきますか。複雑なアニメーションを駆使したゲームでは、いくつものキャラクタ画像を利用することになります。しかし、その画像の数だけビットマップファイルを用意するのは、面倒です。そこで、一つのテクスチャに複数の画像を載せてしまい、テクスチャの一部分を表示することで、複数キャラクタの描画を簡単にしているのですが、、、
ただ単にピクセル単位座標をもとにtu、tv(テクスチャ座標)を算出しただけでは、画面に表示されるキャラクタの端にズレが生じます。これは、DirectXがテクスチャをメモリ展開する際に、そのサイズを2のn乗として管理しているところ、座標の算出過程に切り捨てが行われるところに原因があります。この問題を解消するには、
・テクスチャファイル(.bmpファイル)の幅・高さを2のn乗(256、512、1024とか)にする
・tu、tvを算出するために指定するピクセル値に、0.5をプラスしておく
などの処置が必要になります。こんなことはDirectXのヘルプ(MSDN?)にも載っていないことなんで、自力で原因を追求する必要があったんですね。←もしMSDNでこれらの資料を発見された方は教えてくださいな☆
まぁ自力でとはいったものの、Web上には同じような問題を抱えた同士がウジャウジャいたので、その方達の発言を参考にさせてもらったというのが正解ですね。
せっかく、「テンプレート」という形で区切りをつけたので、こいつをプロジェクトごとZIP圧縮しておきますわ。配布、改造などは自由なんで、ドシドシとやってください。でもその際は、キャラクタ画像、効果音でフリー素材を使用しているので、そちらのサイト様の規定を熟読するよう、お願いしますね。
キャラクタ画像:
http://www2u.biglobe.ne.jp/~presys/
背景画像:
http://ww35.tiki.ne.jp/~izumiryu/
効果音:
http://utm-game-web.hp.infoseek.co.jp/
シューティングテンプレート “fight” のダウンロードはこちら:
http://www2s.biglobe.ne.jp/~yamadai/fight.zip
※DirectX9.0cが必要です。プロジェクトを編集するときは、AB Ver4.03を使いましょう。
解凍したら、fight.exeを起動させてみてください。いきなりゲームが開始されるので、あとは方向キーで移動、スペースキーでショットを打ちます。
テンプレートということなので、必要最低限の制御しかありません。よって、敵機にあたっても死にません(笑)。物足りない方は、fight.pjをActiveBasicで開いて、編集してやってください。
そのうち、このテンプレートの作り方を、段階を踏む形でDirectXプログラミング講座に追加しようと思います。ご期待ください☆
Recent Comments