Scratchで射撃(しゃげき)をつくろう!
今回は、射撃を作ります。
イメージはこんな感じです。
https://scratch.mit.edu/projects/616168602
スペースキーを押すと、弾が発射されてりんご、バナナ、かにに当たると無くなるゲームです。
今回習う単元は、
- 「もしーなら(分岐)」
- キー操作での移動の仕方
「キーが押された(調べる)」(銃の移動) - x座標の定義
- クローンの使い方(弾の発射)
- 〇〇へ行く(動き)
- 変数の使い方(得点表示)
銃をつくろう
まずはねこちゃんの右上のゴミ箱を押してねこちゃんを削除
ねこちゃんを削除したぜ!
そのあと、「描く」をクリック!
みんないい感じに銃を書いてね!
わたしのは、ちょっと下手やな。。
銃口が上に向くように向きを調節しよう!
いよいよ、コードを組み立てていきます。
銃を右と左の矢印キーで動かしてみよう!
今回も、文字ベースのヒントから自分で組み立ててみよう!
ずっと、もし右矢印キーが押されたらx座標を変える
わたしは、こんな感じに作ってみたよ!
右に動いたかな?
ここで、x座標という言葉が出てきましたね!
説明します!
補足(ほそく)x座標とは?
x座標とは横(よこ)の座標です。今回は使わないんですが、縦(たて)の座標はy座標です。
x座標では、右に行くと(緑の矢印)だとプラス(+)
左に行くと(黄色の矢印)だとマイナス(ー)
これをもとに、自分で左矢印キーが押されると左に行くコードを組み立ててみよう!
いけたかな?実際に動かして確認しよう!
ちなみに、わたしはこんな感じに組み立てたよ!
これで銃が左右に動けるようになったね!
銃の弾をつくろう!
今回の山場:銃の弾をつくってみよう。ここでは、クローンを使うよ!
クローンをつくる編
ずっともし、スペースキーを押したらクローンを作成する。
銃と銃の弾はずっとくっついて動く。
ちなみにわたしは、こんな感じに組み立てたよ!
まず、ずっともしスペースキーが押されたなら
「自分自身のクローン」を作る
のブロックを入れるよ。
ここの自分自身をクリックすると他のスプライトのクローンも作成することができる!
違うゲームを作るときに使ってみよう!
また、ずっと「銃へ行く」を入れると銃と銃の弾はずっとくっついて動くよ!
あれれ!スペースキーを押しても何にも動かない!!
なぜだろう??
ここで、クローンについて説明するよ!
補足(ほそく)クローンとは?
クローンとは、同じものが何個も作る際に使うよ!
遺伝子の研究でクローン技術がはやって、羊のドリーが誕生したニュースが昔あったね!
今では、様々な分野でクローン解析が進んでいるが、倫理的な側面との両立が難しくなっているね。
それはさておき、プログラミングのクローンの技術では、銃の弾などがめっちゃオススメ!
使い方としては、「〇〇のクローンを作る+クローンされたとき」をセットで使います。
作るだけでは何も動かないので、注意!
メッセージ機能みたいに、クローンを作るのとされたときのコードを組み立てる必要があるよ。
※メッセージ機能については過去の金魚すくいの記事を参考にして。
クローンされたとき編
そんな感じで、クローンされたときのコードも組み立てていくよ!今回もヒントから
クローンされたとき、ずっと上に進む
上は何座標を変えれば良かったっけ・・?
ちなみに、こんな感じに組み立てたよ!
どうかな?動いたかな?
うっわー!めっちゃ連打されて永遠と弾が発射されてるやん!
こんな射撃は見たことないなぁ。
ちょっと改良しよう!
弾を連打できないコード編
じゃあ、連打できないコードをつけ加えるよ!
クローンを作るときに何秒か待ってみたら?
正解は、、オレンジ色の制御から「1秒待つ」のブロックを入れてね!
これで連打できないかな?1秒の数字はいい感じに自分で変えてみてね!
ちょっと遅かったら、0.5秒とかにするのもオススメ!
連打できない感じになったかな?次に進もう!
うん!いい感じだね!
でも、あれ?銃の弾がずっと残っている状態だね。
気になる。。これを無くしてみよう!
クローンを削除する編
今回も、ヒントから行こう!
ずっともし、端(はし)に着(つ)いたらクローンを削除する
端につくってことは・・どういうコードかな?
いけたかな?先ほどの、クローンされたときのコードに追記するよ!
わたしは、こんな風に組み立てたよ。
※(別解)線を引いて色指定で〇〇色に触れたら、クローンを削除するでも大丈夫
端に着いたら銃の弾が消えたかな?消えたら成功!
これでもいいんだけど、ちょっと気になるところがあって、、
一瞬銃の弾と銃が離れてしまうときがあるんだ。
この原因は、クローンされる前の元の弾が残ってしまっているからなんだ。
だから、クローンされる前の元の弾を隠して、クローンされたときに表示するコードを付け加えよう!
いい感じに動くかな?
得点をつくろう
この得点の機能は、前回の金魚すくいでもつくったね!
もし、何も見なくて出来そうだったらここで終了してね!
はじめてのお友だちは一緒につくろう。今回も変数を使います。
オレンジ色の変数のバーを押して「変数をつくる」をクリック
ここに得点といれるよ。これで変数の完成!
補足(ほそく)変数とは?
変数とは、サイコロみたいなものだよ。
「5」みたいに決まった数字ではなく、変化する数字。
例えば、1+1=Aとするとき、A=2だね。
しかし、1+2=Aとなった場合、A=3になる。
こんなふうに、Aが変化する数字のことを変数と言います。
では実際にコードを組み立てるよ。当てる的(まと:りんご、バナナ、かに)のところに組み立てるぜ!
ずっと、もし的が銃の弾にふれたら、得点を1ずつ増やす
最初(緑のはたが押されたときは得点は0にする)
ちなみにこんな感じに組み立てたよ!
これで、当たったら得点が増えるんかな・・実際に動かしてみよう!
いい感じにまとに当たったら得点が増えたかな?
でも、このままだと的に当たっても分からないよね。。
そこで、的に当たったら隠れるコードを追記するよ!
最初は、表示して的に当たったら隠すコード
ちなみにこんな感じに組み立てたよ。
うまくいくかな?動かしてみよう!
このように、りんごが消えて得点が1になったかな?
いい感じだったら、同じコードをバナナとかににもつくってみよう。
おまけ:「当たり!」と言うコードをつくろう
おまけとして、りんご、バナナ、かにの的に当たったときに吹き出しで「当たり」と言う感じにしよう!
イメージはこんな感じ。
このコードは、今までつくった部分に追記するだけでOK!
「紫色の当たり!と〇〇秒言う」を得点を増やす下の部分に入れたよ。
隠すの下に入れたら、隠れてから吹き出しが出てしまうから変な感じになるかも。。
プログラミングのコードは上から下に実行されていくので、順番にも注意してね!
チャレンジ
みんなも色々とデザインを作ったり、機能を追加してみたりしてね!
Levelを5段階で分けてます。もし良かったらチャレンジしてね!
- 的を動かしてみる(Level4)
- 的を増やしてみる(Level2)
- 制限時間をつける(Level2)
※制限時間をつけるコードは金魚すくいの時に紹介しました。