テクニック集/内部フラグに無理矢理名前を付ける

Last-modified: 2011-01-28 (金) 11:48:44

はじめに

MMF2では内部フラグに何故か名前を付けることが出来ません。
0~31番の番号でしか記述出来ない為、非常にコードの可読性が低くなります。
flag_01.png
数字で書いてあるから何のことだかサッパリですね。
コメント欄のメモをイチイチ見ながら書かないといけません。
凛子ルートの筈が寧々ENDになっちゃうゲームを間違えて作ったらユーザーに袋叩きに合います。

擬似定数とは?

そこでプログラミング言語でいうところの定数や列挙体
(書き換える必要のないユニークな識別番号に判り易い名前を付けるものだと思って下さい)
に相当するものを擬似的に実現して読み易くしちゃいましょう!

作り方

図のように適当なオブジェクトの変数名をフラグに付けたい名前にし、変数の初期値を連番で設定します。
(被らないフラグ番号で0~31番であれば連番じゃなくても何でもいいです)
flag_02.png

フラグを指定している番号を「オブジェクトからデータ抽出」で変数の値から読み取るようにします。
(例では「好感度」という名前のアクティブオブジェクトに設定して読み取っています)
flag_03.png
「0」を「愛花("好感度")」に書き換えます。
flag_04.png

するとコードの可読性が劇的に向上します。
flag_05.png

効能

数字で指定するより若干面倒ですが
「コードは書くよりも読む機会の方が多い」
ということを肝に命じましょう。
1週間もすれば自分のコードは他人のコードになります。
バグ探しの時間を減らす為にも可読性の高いコードの記述をお勧めします。

定数管理用オブジェクトで一元管理

上記の例ではオブジェクト自身の変数名と値をフラグ名に使用しましたが
変数に空きが無ければ定数用のオブジェクトを別に作ってそれを使用しても構いません。
異なるオブジェクトで共通のフラグ名を使用する場合はこの方が管理が楽です。

flag_06.png

定数オブジェクト
flag_07.png

使用上の注意

飽くまでも0~31番の数字の代わりに使って読み易くしているだけだということを忘れないで下さい。
決して使えるフラグの数が32個よりも増える訳ではありません。
同一オブジェクト内で同じフラグ番号をダブって設定してしまわないように注意してください。

コメント

  • 万が一フラグ番号を変更せざる負えなくなった場合に、定数を変更するだけでいいという点でも有用 -- 2011-01-28 (金) 11:48:44