改造版サンプルの説明:イベントグループ
|
|
イベントグループを使うとイベントエディタの見た目がすっきりします。そして特定の命令と特定の条件は特定のイベントグループに、という作り方を徹底して実践するとデバッグするときに大変楽になります。例えば今回は大まかに2つ、「キーコントロール」と「移動とコリジョン」で分けてあります。
なんらかの事情でキーコントロールをオフにしたい場合「コントロール\control」イベントグループをオフにしてXY移動量を0にする(XY移動量の定義を0にする)だけで完全にキー入力からの操作を不能にすることができます。あるいは親イベントグループを作ってその内にこの二つのイベントグループを子として格納し、必要に応じて親イベントグループをオンオフするというやり方も考えられます。
そしてイベントグループをオフにすれば中に含まれている何十行という条件もたった一行(イベントグループがアクティブか否か)の判定だけであとはぜんぶスキップ処理されることになるので、非アクティブにしてある時はMMFアプリケーションのイベント処理にかかる負担をすこしでも減らせる可能性があります。あるいはMMF2で作る小規模なゲームだとこんなの気にする必要が無いのですが、中規模くらいに処理が拡大する可能性を考えるとイベントグループは意識して最初から活用した方が良いと思います。
しかし「移動と衝突判定(move and collision)」は高速ループを使って処理を一体化してあるので、移動と衝突判定は個別のイベントグループ使って切り離すよりこれはフラグで管理したほうが楽だと思ったのでフラグを用いています。
フラグと変数(数値型)は何が違うのか
参考外部URL:Wikipediaから「フラグ」
MMF2のアクティブオブジェクトなどが持てる「内部フラグ」は変数と違って通常の方法だと固有の名前が付けられません。「内部フラグ0~31」とか番号で区別するのが一般的で、気軽に使えるので筆者もフラグはよく使うのですが、あまりにも気軽すぎて「はて、あのフラグは何番だったかしら?」とか結構忘れてしまいがちです。そこで内部フラグに独自の名前をつける変則的なアプローチもありますが、これを試してみるか、あるいはどのような方法であれフラグ管理は地道にメモを取ることをお勧めします。
参考外部URL:テクニック集/内部フラグに無理矢理名前を付ける
このやり方は内部フラグにただ名前を付けるだけではなく、wikiの下コメント欄にも書いてあるように「定数を変更することでフラグ番号を切り替えることができる」という点でも便利な方法です。→自作八方向にこのフラグ管理法を当てはめて作ってみた例:★