空想曲線

吉里吉里2/KAG3でのゲーム制作に使える小ネタ置き場。ゲーム用素材も置いてます。

吉里吉里/KAG:ローカル変数「mp」について  

2010-12-26
2017-06-16
cm0
tb0

ざっとブログを読み返して気づいたのですが、
マクロ関連の記事があまりにも不親切だったのでちょっと補足。
使用している吉里吉里2のバージョンは2.30 Rev.2。

mp変数を使ったマクロ


*macro
[ macro name="BGM再生" ]
[ if exp="mp.フェード" ]
[ fadeinbgm storage=%storage time=%time|2000 ]
[ else ]
[ playbgm storage=%storage ]
[ endif ]
[ endmacro ]



実際に使用するとき


*hoge
;hoge.oggを2000ミリ秒でフェードイン再生
[ BGM再生 storage="hoge.ogg" フェード ]

;hoge.oggを通常再生
[ BGM再生 storage="hoge.ogg" ]

ここで一瞬「?」と思うのが mp の存在です。

mp 変数とはマクロ内でのみ使用可能な変数(ローカル変数)です。
マクロ内でマクロに引き渡した属性を辞書配列として表します。

使用できるのはマクロの中だけなので、マクロを抜けた時点で無効化されます。
そのため、同じ変数名を別のマクロで使用しても問題なく使えるメリットがあります。

mp.フェードのように、mp 変数はいくらでも追加できます(初期値はvoid)
通常、「変数に何も入っていない=void」を返すのですが
mp の場合は true を返すので、これを活用しています。

すると、マクロで[ BGM再生 フェード ]と記述したときに
条件式 if がとなり、if~elseまでの処理を実行するという具合になります。

……説明がヘタでごめんね(´・ω・`)たぶんリファレンス見た方が早いな。
『TJSをもっと使うために』に載ってるからね。

ということで、補足ネタ終了。


関連記事

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://kopacurve.blog33.fc2.com/tb.php/42-c6a19658
この記事にトラックバックする(FC2ブログユーザー)

Author

Recent

Category

Link

Comment

Mailform

Twitter