ANA国内線【PR】
カテゴリ:モンバーマン
  • [動画]第1回モンバーマン進捗報告
    [ 2012-03-26 19:53 ]
  • 描画プライオリティ
    [ 2011-10-24 21:42 ]
[動画]第1回モンバーマン進捗報告
第1回モンバーマン進捗報告。
youtubeに動画をアップしました。
見てみてね。

by monko_dvd | 2012-03-26 19:53 | モンバーマン | Trackback | Comments(3)
描画プライオリティ
モンバーマン制作の話をちょっと。
描画プライオリティの話。
プライオリティとは、優先順位の事です。

ボンバーマンの画面に描画する物として、
マップ背景、タイル(下の地面)、ハードブロック、ソフトブロック、
アイテム、プレイヤーキャラ、爆弾、爆風…。
と、色々描画しなければならないのですが、
描画プライオリティを気にしないと、ちゃんと表示できません。
例えば、

ハードブロックを描画

プレイヤーキャラを描画

と描画していくと、

このように表示されます。
何かおかしいですよね?
後に描いた絵が上側に来るので、
ブロックの上にプレイヤーキャラが被さってしまってます。

では、逆に、

プレイヤーキャラを描画

ハードブロックを描画

と描画するとどうなるでしょうか?

このように表示されます。
こんなボンバーマン嫌ですよね。

正しい表示は、

このように、上の列のハードブロックと、下の列のハードブロックの間を、
プレイヤーキャラが通るようにしなくてはなりません。
こう表示するには、

上の列のハードブロック描画

プレイヤーキャラを描画

下の列のハードブロックを描画

としなければいけません。
つまり、マップ上の全てのハードブロックを一括で描画してしまうと、
正しい表示ができないのです。
正しい表示をするには、
プレイヤーキャラと、ブロック1つ1つに描画プライオリティ(優先順位)をつけて、
上から順にソート(並び変えて)して描画しないといけません。
プレイヤーキャラは、移動するので、この並び順は、毎フレーム(1/60秒)変化します。
そして、毎フレームソートしなければいけないのです。
この毎フレームソートと言うのが重い処理(時間のかかる処理)なのです。
マップ上の全てのブロック、プレイヤーキャラ、
さらには、爆弾、爆風…と、たくさんの物があるので、
これらを、全て、「同じオブジェクト」として管理する…。
と、この話は、オブジェクト指向と言う、プログラミングの概念の話になってしまうので、
説明が難しいのですが、
とにかく、描画プライオリティを考えましょう、と言う話でした。
これが、3Dのゲームだったら、奥側の方から手前に向かって描画されていくので、
何も気にしなくてもいいのですが
(ボンバーマンオンラインJAPANが3Dでやっていたのかはわからないけど)、
モンバーマンは2Dなので、しっかり考えないといけないのです。

今回の話は理解してもらえたでしょうか?
それほど難しい話では無いです。
プログラミングは、こういうチマチマ(今回の話は結構重要な事だけど)した事まで、
全部、考えて、コードを書いていくのです。
大変でしょ?
by monko_dvd | 2011-10-24 21:42 | モンバーマン | Trackback | Comments(3)
XML | ATOM

skin by excite