mywayなプログラミング生活ブログ

プログラミング関連の記事を書いています。作る様子がわかる様に動画も作っています。

Scratch2(スクラッチ2)で壁打ちゲームを作ろう(7回目)

myway@おじさんです。
今回は、障害物のオレンジを追加したいと思います。


動作環境について
OS:MAC OS X(Windowsでも操作はほとんど変わりません)
エディタ:Scratch offline editor(ver.456)

1.準備

前回保存したプロジェクトを開いて下さい。
画面右上の「ファイル」をクリックしてから、「ひらく」をクリックして、プロジェクトを開いて下さい。

 

2.オレンジの追加

「新しいスプライト」をクリックして「Orange」を追加します。

f:id:mywayhaojisan:20170506102326p:plain

f:id:mywayhaojisan:20170811173805p:plain

 

3.「Orange」のスクリプト

「Orange」のスクリプトです。

f:id:mywayhaojisan:20170811173834p:plain
簡単に説明すると、「Orange」はサイズが小さいので、大きくしてから、らんすうをつかって表示する場所を変えています。「Apple」のスクリプトとほぼ同じです。

実は、このままだと問題があります。
Apple」と「Orange」が、かぶって表示してしまう可能性があります。
では、どうすればよいかを書いていきます。

4.「Apple」と「Orange」のスクリプト

Apple」のスクリプトです。

f:id:mywayhaojisan:20170811173854p:plain
「緑のはたがクリックされたとき」ブロックの最後に、メッセージ「Appleをおいた」ブロックを追加しました。
(メッセージブロックはつくっています)

次に「Orange」のスクリプトです。

f:id:mywayhaojisan:20170811173918p:plain
(1)「緑のはたがクリックされたとき」ブロックには、サイズの変更だけにし、「xざひょう...」ブロックは消しています。
(2)「リンゴをおいたをうけとったとき」ブロックを追加。
これで、「Apple」の場所が決まってから、「Orange」をおくようにしています。
(3)「Orange」をおく場所を決める。
(4)おいた場所が「Apple」にふれていれば、おきなおすよう、「Appleにふれたではないまでくりかえす」ブロックで、おきなおすようにしています。
(5)メッセージの「オレンジをおいた」ブロックを追加。

なぜ、メッセージを使っているかを説明します。

以前、「プログラムは順番にしかうごかない」と説明したと思います。
もう一つルールがあります。
「どのプログラムが先に動くかは、コンピュータ任せ」になっています。

「緑のはたがクリックされたとき」ブロックが、色々なスプライトにあります。
しかし、どのブロックが一番はじめに動くかは、コンピュータにしかわかりません。
よって、スクリプトで「やってほしい順番」を指示する必要があります。

今回は、「Apple」→「Orange」の順番でおいて欲しいので、「メッセージ」を使って順番を指定しています。

5.「Ball」と「Orange」の順番

「Ball」が動きだしたあとに「Orange」があらわれたらおかしいので、「Ball」と「Orange」の順番も指定したいと思います。


「Ball」のスクリプトです。

f:id:mywayhaojisan:20170811173945p:plain
注)変更した部分のみ表示しています。見えない部分は変更していません。

(1)「緑のはたがクリックされたとき」ブロックに「ずっと」ブロックがありましたので、一旦はなします。
(2)はなした場所に「みため」の「まえにだす」ブロックをおきます。
これは、「Orange」スプライトを最後に追加したので、このままでは、「Ball」が「Orange」の後ろに表示されてしまいます。
ここで、「まえにだす」ブロックを入れる事で、「Orange」の前に「Ball」が表示されるようになります。
(3)「ずっと」ブロックの上に「オレンジをおいたをうけとったとき」ブロックをおきました。

では、「緑のはた」をクリックして、動かしてみましょう。
Apple」と「Orange」は重ならないでしょうか?
また、「Ball」が「Orange」の後ろをとおらないでしょうか?

今回はここまでです。
作ったら、必ず、「ほぞん」をするように心がけて下さい。

それと、今回も動画がありますので、よければ、参考にしていただければと思います。

youtu.be



次回は、「Apple」と同じように、「Orange」も「はね返える」ようにしたいとおもいます。


最後まで読んで頂いてありがとうございます。
皆さんに少しでもお役に立てれば幸いです。

<<壁打ち(6回目) 壁打ち(8回目)>>