見出し画像

【GB Studio】第2回 オーバーレイ(ウィンドウレイヤー)の可能性【GBVM】

こんにちは、しぐれです。
今年もよろしくお願い致します。

今回も引き続きオーバーレイでGBVMを色々やろうと思います。
前回の記事はこちら

オーバーレイに背景を描画する

前回はオーバーレイに文字を表示させました。
フォントを使って記号を表示させることができるので絵を分割して表示させることも可能です。
しかし、この方法だとフォントの数(255個)しか表示できないという難点があります。
また、普通に使う文字の枠を圧迫することにもなります。

以上を解決するために今回は背景をオーバーレイに描画させてみようと思います。

背景画像を用意

テスト用なので160×144の白画像にニコちゃんマークを描いたものを用意しました。
ニコちゃんマークの開始座標はX=0・Y=0、サイズはW=5タイル・H=5タイルです。

用意した背景画像

オーバーレイの動きを確認(飛ばしてOK)

ニコちゃんマークをオーバーレイに写す前のオーバーレイの動きを確認しておきます。
ここにニコちゃんマークが出るんだ、というイメージをします。
オーバーレイの動きなどが分かっている方はこれはやらなくてOKです。

黒いとこの左上に描画する予定
(分かりやすくするために移動させています)

ちなみにオーバーレイは初期化しないとバグる時があります。
対策としては、予め表示&非表示&初期位置に移動させることです。

GIFの動作をさせるためのコード

オーバーレイに描画

背景に描かれているものをオーバーレイに描画させるために使うGBVMは「VM_OVERLAY_SET_SUBMAP」です。

VM_OVERLAY_SET_SUBMAP X, Y, W, H, SX, SY

オーバーレイのサイズ以上の数値を設定するとバグります。
数値は全てタイル単位です。

X:描画を開始するオーバーレイのX座標。0〜20。(今回は0)
Y:描画を開始するオーバーレイのY座標。0〜18。(今回は0)
W:オーバーレイに描画する絵の横幅。(今回は5)
H:オーバーレイに描画する絵の高さ(今回は5)
SX:オーバーレイに描画する絵の背景におけるX座標(今回は0)
SY:オーバーレイに描画する絵の背景におけるY座標(今回は0)

今回用に書くとこうなります。

VM_OVERLAY_SET_SUBMAP 0, 0, 5, 5, 0, 0

これを書くとこうなります。

ニコちゃんが出てきました

これでオーバーレイに背景画像を描画させることができました。
参考にした下記記事には右側から迫ってくるボスをこの方法で実装させています。
(衝突判定も移動させているようです)

次回

次回はスワップタイルと合わせて会話シーンにアバターを表示させようと思います。

イメージ図

なるべく早く更新できるように努めます。
次回もお楽しみに!

この記事が気に入ったらサポートをしてみませんか?