条件判断は、状況に応じてプログラムを分岐させるものです。
特にゲームプログラミングでは、条件判断を多用するのでしっかりマスターしましょう。
条件判断にはif命令を使います。条件式が満たされれば、それ以降の命令を実行します。
a = 3 if a>2 : mes "aは2より大きい"
上の a>2 が条件式です。条件式にはいくつかの種類があります。
| a=b | aとbは等しい |
| a!b | aとbは等しくない |
| a<b | aはbよりも小さい |
| a>b | aはbよりも大きい |
| a<=b | aはbよりも小さいか等しい |
| a>=b | aはbよりも大きいか等しい |
複数の条件を一度に書くには、論理演算式を使います。
| a&b | aとbはどちらも正しい |
| a|b | aとbのどちらかが正しい |
a = 3 b = 10 if (a>2)&(b>5) : mes "aは2より大きく、bは5より大きい"
if命令はコロンで区切ることで、複数の命令を実行できます。
複数の行に命令を書きたい場合は「 { 」を使います。
a = 3
if a>2 : mes "aは2より" : mes"大きい"
if a>2 {
mes "aは2より"
mes "大きい"
}
else命令を使うと、条件式を満たさなかった場合の処理を書くことができます。
書き方はコロンの後に書く方法と、「 } 」の後に書く方法があります。
a = 1
if a>2 : mes "aは2より大きい" : else : mes"aは2より大きくない"
if a>2 {
mes "aは2より大きい"
} else {
mes"aは2より大きくない"
}
ここからは少し難しいので、初心者の方は飛ばして構いません。
条件式の判定結果は、真偽値で表されます。条件が正しいときを真、条件が正しくないときを偽といいます。
例えばaが2のとき、条件式 a>1 は真で、a>3 は偽です。
条件式は中身が評価された後、偽なら0、真なら1に置き換えられます。
a = 2 mes (a < 10) //真の条件式 mes (a > 10) //偽の条件式
HSPでは、0を偽、それ以外の値を真として扱っているので以下のような記述が可能です。
これはゲームプログラミングで多く用いる、いわゆる「フラグ」の判定に使うことができます。
flag = 0 if flag :mes "フラグはON" : else :mes "フラグはOFF" flag = 1 if flag :mes "フラグはON" : else :mes "フラグはOFF"