第6回

prev slash top slash next

第6回:条件分岐

if

今回は連続で発射されていた弾の発射間隔を調整しましょう。

たとえば、5フレーム間隔で発射したいと思うとき、変数を使ってこう考えます。

5フレームごとに弾を発射したい

変数countを用意して、1フレームごとにcountの数を1ずつ増やしていって、
countが5の倍数になったとき発射する

これを、[if]を使って、こう書きます。

let count = 0;
@Initialize{(略)}
@MainLoop
{
 if(count%5==0)
 {
  CreateShot01(GetX, GetY, 2, 90, BLUE01, 10);
 }

 count++;
}

こう書けば、5フレームごとに1発ずつ弾が発射されるようになります。
処理を1つ1つ見ていきましょう。

let count = 0;
変数countを宣言して0で初期化します。これについては問題ないでしょう。

if(count%5==0){〜}
これが今回の重要な点です。
この文の意味は、もしcount%5==0なら"{}"の中の命令を実行しろ
といったような意味です。
"count%5==0"は、countを5で割った余りが0と等しいとき、つまりcountが5の倍数のとき
ということになります。
等しいといえば、「=」を使いたいところですが、「=」は代入で使うものでした。
そういうわけで、等しいということを表すには、「==」を用います。

count++;
この文は、countの値を1ずつ増やせという意味です。
count = count+1;でもcount+=1と書いてもかまいません。
1ずつ引く場合は、count--;と書きます。


以上のことをまとめると、5フレームごとに{}の中の命令が実行され、
弾が発射されます。


ここでif文をまとめてみましょう。

if(条件式){条件式がのとき実行}
else{条件式がのとき実行}

とは条件式が正しいこと、とは条件式が正しくないことをさします。
偽の時にも特別な処理をしたい場合はelseを使います。
elseの中で条件分岐をしたいときには、「else if(条件式)」と続けることができます。
else は「でなければ」といったような意味です。

if(条件式A){条件式Aがのとき実行}
else if(条件式B){条件式Aがかつ条件式Bがのとき実行}
else{条件式Aがかつ条件式Bがのとき実行}

基本的な条件式の記述
「a == b」 :aがbと等しい
「a > b」 :aがbより大きい
「a >= b」 :aがb以上
「a < b」 :aがbより小さい
「a <= b」 :aがb以下
「&&」は論理積を表します。「かつ」といった意味です。
if(a > 50 && b < 30)
{
 aが50より大きく、bが30より小さいときに実行される
}
「||」は論理和を表します。「または」といった意味です。
if(c>=2 || b<=30)
{
 cが2以上またはbが30以下のときに実行される
}
「&&」と「||」は組み合わせて使うことが出来ます。
例:[a==0&&b%5==0||GetLife>=500]
「aが0」かつ「bを5で割ったときの余りが0(bが5の倍数)のとき」 または「敵のHPが500以上のとき」
といった具合になります。

条件分岐はかなり重要なのでしっかり覚えておくようにしましょう。
次回はループ処理と関数の予定です。


top
prev slash next
inserted by FC2 system