[進捗]左右下にも扉つけたい問題 / フロア設定の自動化
左右下にも扉つけたい問題
上方向にしか扉(画像)を設置できない問題……ツクールの永遠の課題ですよね、たぶん
いろいろ考えて、イベント用バルーンとオーバーレイ表示で対策しました!
https://twitter.com/thiropGames/status/1406592215590129666
コード的にも見栄え的にもわりと綺麗にできて満足です🤸♂️
これでフロアの構造設計の自由度が上がり、のちのちランダムダンジョンを作る際にも融通が効きやすくなったはず!
仕組みの解説(マニア向け)
オーバーレイ表示用の地形データは、マップの下の方にまとめて配置してます。
扉のイベントも設置してますが、パフォーマンスのために最初にイベントの位置だけ解析したらすぐ削除します
オーバーレイ表示のざっくりした手順は↓
- spritesetをsnap
- $gameMap.setDisplayPos()で瞬時にオーバーレイ用の地形位置に表示移す
- バルーン上に表示してるイベントも瞬時に移して拡大率なども戻す
- spriteset._baseSpriteをオーバーレイ用のコンテナにaddChild()
ちなみにバルーン上の扉イベントをそのままオーバーレイ上に表示させることで、扉の開閉状態などをそのまま維持することができるのです。
だいたい力技だけどTilesetは2つ同時に表示できなかったりするので、1つのマップ上で実現できるこのやり方がわかりやすいかなと思います、たぶん
フロア設定の自動化
有言実行の男、シロップ
フロア設定用のjsファイルを自動生成したいなあと昨日こぼしてましたが、サクッと処理を組めました!
手動で設定しようとすると、イベントIDとか移動先の部屋IDを打ち間違えたりの修正も含めて1フロアあたり1時間強かかります…
作業的にもつまらないので、自動化で一瞬で確実に終わるのは大きいです!
仕組み的にはイベントの名前・向き・配置を解析して、対応するギミックデータ設定を生成してるかんじです。
例えば移動用のイベントだったら、向いてる方向の先の一番近い部屋のタイルを探して移動先の部屋IDを決定……みたいな感じですね
自動化……甘美な響き
今日は頑張った!
明日は夜にプラグイン関連の対応を行う予定です。
毎度おまたせしてすみませんm(_ _)m