
今回はスモウルビーで分岐を使ってみたいと思います。
以下の記事でつくったものを利用しますので繰り返し処理を試してからチャレンジしてみてください。
上記の記事ではスプライトがグルグルと大きくなっていたのですが枠いっぱいになるとずっとそのまま大きさになっています。
そこで今回は分岐を使って枠いっぱいになった時にスプライトを元の大きさに戻してみたいと思います。
分岐はプログラミングにおける基本的な処理の1つです。
プログラミングの基本的な処理について知りたい方は以下の記事をご覧ください。
それではやってみましょう!
スプライトの大きさをもとに戻す
現在この状態にはなっていますでしょうか?
self.when(:flag_clicked) do loop do turn_right(15) self.size = self.size + 10 end end
まだできていない場合は下の記事をみてつくってみてください。
スプライトの大きさをもとに戻すブロック『見た目』エリアの『大きさを100%にする』ブロックでした。
Rubyで書くとどうかきましょう。
スプライトのサイズを100にしたいのですよね。
そして『=』は代入の意味だったことを思い出すと・・・
self.size = 100
となりますね!
上の一文を「self.size = self.size + 10」の下にいれます。
self.when(:flag_clicked) do loop do turn_right(15) self.size = self.size + 10 self.size = 100 end end
追加してみたら動かしてみましょう。
スプライトが大きくならないようになっていればOKです。
ただこのままでは全く変わらなくなってしまっているので次は分岐を使って動きをつけられるようにしましょう。
分岐を使ってスプライトが枠いっぱいになった時に戻す
つづいて分岐を使っていきましょう!
分岐とは「もしスプライトの大きさが500なら元の大きさに戻す」と言った感じで「もし○○なら○○する」といったことができるようになります。
分岐『if』を使ってみる
分岐処理は『制御』エリアの『もし○○なら』ブロックを使っていました。
テキストであらわすと『if 〇〇 ~ end』と書くことができます。
『〇〇』には『~』のなかに書かれている処理を実行する条件を書きます。
どんな時に『大きさを100%にする』を実行したいでしょうか?
いろんな条件が思い浮かぶかもしれませんがここではスプライトの大きさに注目してみましょう。
スプライトの大きさはある一定で止まっているように見えますね。
スプライトエリアの大きさ部分に注目してみましょう。
『540』で止まっていますね!
どういう「もし○○なら○○する」を作りましょう?
「もし大きさが540なら大きさを100にする」とすると良さそうですね!
『もし』の分岐を追加してみよう
もしに利用したい条件は決まりましたので条件に入れるテキストを考えましょう。
『大きさが540』という条件にしたいのですが大きさはもう大丈夫ですね。
算数的に考えるのであれば『self.size = 540』となりそうですね。
しかしプログラミングでは『=』が等しいと言う意味ではなく代入でしたね。
等しいはどのように書くのでしょうか。
等しいは『==』と書くことができます。
よって以下のように書くことができます。
self.when(:flag_clicked) do loop do turn_right(15) self.size = self.size + 10 if self.size == 540 self.size = 100 end end end
上記のようにかけたら実行してみましょう!
大きさがもとに戻るようになってより面白い動きになりましたね。
繰り返しと分岐を組み合わせることでいろんなことができそうですね!
今回はここまで、お疲れさまでした!