ある条件が満たされたときだけ、ジャンプするとかメニューを表示するとかの処理を行ないたい場合があります。そういう場合に、条件指定を命令に追加します。
どんな命令に追加できるか?
今のところ、ジャンプ命令、メニュー、クリッカブルマップで動作することが確認されています。
特定の値と比較する
まずは、ある特定の値を変数と比較する方法です。例えば変数lf[25]の中身が100であるか、という比較ですね。
書式 とある命令;(変数名[添字]『比較演算子』『数値』)
比較演算子の右側(右辺)には数字しか書けません。ご注意ください。
比較演算子 | 意味 |
---|---|
== | 等しい |
!= | 異なる |
< | 小さい |
<= | 以下 |
> | 大きい |
>= | 以上 |
例:
変数lf[25]の中身が38と等しいかチェックします。
;(lf[25]==38)
変数lf[25]の中身が7と異なるかチェックします。
;(lf[25]!=7)
変数lf[25]の中身が0より小さいかチェックします。
;(lf[25]<0)
変数lf[25]の中身が3以下かチェックします。
;(lf[25]<=3)
変数lf[25]の中身が14より大きいかチェックします。
;(lf[25]>14)
変数lf[25]の中身が100以上かチェックします。
;(lf[25]>=100)
変数同士を比較する場合
キャラフレスクリプトの場合には、変数同士を比較するのがちょっと厄介です。条件指定の書式をもう一度見てみましょう。
書式 とある命令;(変数名[添字]『比較演算子』『数値』)
困ったことに、右辺側が『数値』しか書けないのです。ではどうすれば変数同士を比較できるでしょうか?その方法とは、『変数同士の差を、ゼロと比較する』というものです。
例えば;(lf[10]<lf[11]) と書きたければ、このようにしてください。
lf[0]=flagSub:lf[10],lf[11]
とある命令;(lf[0]<0)
変数lf[25]の中身が変数lf[27]の中身と等しいかチェックし、等しいときだけセグメント1200にジャンプします。
例 lf[1]=flagSub:lf[25],lf[27]
->Segment:1200;(lf[1]==0)
実行例
実際のコードを見てみましょう。このコードを実行すると・・・
最初は下駄箱にしか行けません
下駄箱からはどこにでも行けます。
掲示板前からは下駄箱か花壇に行けます。
花壇からは下駄箱か掲示板前に行けます。
ピンバック: スクリプト研究所 記事一覧(目次) | スクリプト研究所