[進捗]ミニマップ自動描画/[雑記]絵とプログラムの技術交換

こんばんは〜

名前にらしからずコーヒーはブラック党だったのですが、
最近、めっきり生クリーム入れる派に変わりました。
(浅煎りの豆なら断然ブラックなんですけどね)


最近全然通えてないのですが、猛烈にコメダの珈琲が飲みたい今日この頃です☕


進捗

昨日言ってたとおり、ミニマップの実装をはじめました。
ひとまず、部屋の移動に合わせてマップを更新していくところまで。

床部分はtileIdを精査して自動判別してます。楽ちん

$gameMap.tileId(x,y,0)でAタイルIDを取得して、
tileIdが0以上かつ!Tilemap.isWallTile(tileId)で壁タイルを弾いて
!Tilemap.isRoofTile(tileId)で天井タイルも弾く

ついでに自動判定で微妙部分はリージョンを適当に設定して判定してます。
(今日は進捗で技術っぽい話してるので講座的な何かはカットしちゃおう🍤)


部屋の判定

どうやって、部屋の範囲を判定してるかというと、
まず、通路にあたる部分をリージョンで設定します。

↓画像で11が通路部分。(5は床ではない増すという識別用リージョンID)


それで、部屋の中央の座標だけ与えてそこから上下左右のマスが
「部屋」か「通路」かその他のマスかを順々に判定していきます。

部屋マスのとなりが通路マスの場合は隣接する通路なので描画しちゃいます。

そして、通路マスの隣が部屋マスの場合は隣の部屋につながったということなので
そこで判定のループを断ち切るという感じですね。


床の輪郭の補正

床部分にギザギザがあると輪郭が細かくなりすぎて少し見栄えが悪く感じます。

リージョンで細かく整形できるのですが、できるだけ自動にしたいということで
周囲の2マス以上が床でないマスは描画しないという補正を加えて見ました。


↓補正あり/なしの比較


予想外の補正結果になりそうなケースもありそうですが、
いまのところは綺麗に働いてくれてるので満足👍



雑記

絵とプログラムの技術交換

フォロワー以上限定無料

無料プラン限定特典を受け取ることができます

無料

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索