スクラッチプログラミング - コントローラーでそうさするシューティングゲーム
プロジェクトの中にコントローラーをつくってあそぶシューティングゲームをしょうかいします。スプライトでコントローラーをつくれば、パソコンだけでなくキーボードのないタブレットでもそうさできるようになりますよ。
サンプルさくひんであそんでみよう
今回(こんかい)しょうかいするのは、スプライトのむきをかえて、ねらって、うつ、シューティングゲームです。
ステージ右下にあるコントローラーで、弓(ゆみ)のむきをかえて、矢(や)をうちます。風船(ふうせん)をぜんぶわりましょう!
コントローラーのつかいかた:
- タブレット…コントローラーをタップ
- パソコン…コントローラーをクリック
(プロジェクトがひょうじされないばあいは、ScratchのPyxofyページをごらんください)
このきじをよむとわかること
- スプライトをコントローラーとしてつかうほうほう
- コントローラーを連打(れんだ)、つづけておせないようにするほうほう
コントローラーでそうさするゲームをつくろう
スプライトでつくったコントローラーで、弓(ゆみ)と矢(や)をそうさするシューティングゲームをつくりましょう。
1. コントローラーをつくる
コントローラーのスプライトを3つ用意(ようい)します。メッセージブロックをつかって、コントローラーとしてうごくようにプログラミングしましょう。
ゆみを左へまわす
![スプライトがおされたときメッセージ左を送るコード スプライトがおされたときメッセージ左を送るコード](https://www.pyxofy.com/content/images/2021/10/broadcast-left.jpg)
ゆみを右へまわす
![スプライトがおされたときメッセージ右を送るコード スプライトがおされたときメッセージ右を送るコード](https://www.pyxofy.com/content/images/2021/10/broadcast-right.jpg)
やをうつ
![スプライトがおされたときメッセージうつを送るコード スプライトがおされたときメッセージうつを送るコード](https://www.pyxofy.com/content/images/2021/10/broadcast-shoot.jpg)
コントローラーとしてつかうスプライトが3つできました!
»コントローラーのくわしいつくりかたは『タブレットでもつかえるコントローラーをつくろう』をごらんください。
2. ゆみのむきをかえる
コントローラーがおされたら、弓(ゆみ)のむきがかわるようにしましょう。
- 弓(ゆみ)のスプライトをえがく
![弦の中央にスプライトの中心を合わせて弓のスプライトを描く 弦の中央にスプライトの中心を合わせて弓のスプライトを描く](https://www.pyxofy.com/content/images/2021/10/draw-sprite-bow.jpg)
- ひだりをうけとったとき、左へまわす
- みぎをうけとったとき、右へまわす
![弓がコントローラーからのメッセージを受け取るコード 弓がコントローラーからのメッセージを受け取るコード](https://www.pyxofy.com/content/images/2021/10/bow-receives-messages.jpg)
コントローラーをおすと、弓(ゆみ) がぐるりとまわるようになりました!
![コントローラーからのメッセージを受け取って弓の向きが変わる画像 コントローラーからのメッセージを受け取って弓の向きが変わる画像](https://www.pyxofy.com/content/images/2021/10/bow-program.jpg)
3. やを(ゆみのむき)どにむける
矢(や)を、弓(ゆみ)とおなじむきにうごくようにしましょう。
- 矢(や)のスプライトをえがく
![後端を中心に合わせて矢のスプライトを描く 後端を中心に合わせて矢のスプライトを描く](https://www.pyxofy.com/content/images/2021/10/draw-sprite-arrow.jpg)
- 弓(ゆみ)とおなじ位置(いち)にする
- 弓(ゆみ)より、てまえに表示(ひょうじ)する
![矢の位置を弓と同じにするコード 矢の位置を弓と同じにするコード](https://www.pyxofy.com/content/images/2021/10/go-to-bow.jpg)
弓(ゆみ)とおなじむきにするためつかうブロックは、「しらべる」の中にある「ステージのはいけい」です。
![ブロックパレットにあるステージのはいけいブロック ブロックパレットにあるステージのはいけいブロック](https://www.pyxofy.com/content/images/2021/10/sensing-block.jpg)
ブロックをタップして「ゆみのむき」にかえて、「90どにむける」とくみあわせましょう。
![ブロックをクリックして出てきたメニューからゆみのむきにする ブロックをクリックして出てきたメニューからゆみのむきにする](https://www.pyxofy.com/content/images/2021/10/direction-of-bow.jpg)
- ずっと、弓(ゆみ)とおなじむきにする
![矢の向きを弓と同じにするコード 矢の向きを弓と同じにするコード](https://www.pyxofy.com/content/images/2021/10/point-in-the-same-direction-as-bow.jpg)
コントローラーで弓(ゆみ)のむきをかえると、矢(や)もいっしょにうごくようになりました!
![コントローラーを押すと矢と弓が同じように動く画像 コントローラーを押すと矢と弓が同じように動く画像](https://www.pyxofy.com/content/images/2021/10/arrow-and-bow-change-the-direction.jpg)
4. やのクローンをつくる
コントローラーがおされたら、矢(や)をうつようにしましょう。うつための矢(や)は、クローンをつかいますよ。
- うつをうけとったとき、クローンをつくる
![コントローラーからのメッセージをうけとってクローンを作るコード コントローラーからのメッセージをうけとってクローンを作るコード](https://www.pyxofy.com/content/images/2021/10/create-clone.jpg)
ステージのはしまでうごかしたら、クローンをさくじょします。
- クローンされたとき
- ステージのはしまでうごかしつづける
- クローンをさくじょする
![クローンをステージの端まで動かしてから削除するコード クローンをステージの端まで動かしてから削除するコード](https://www.pyxofy.com/content/images/2021/10/move-the-clone.jpg)
コントローラーをおすと、矢(や)をうてるようになりました!
![矢のクローンが連続で表示されている画像 矢のクローンが連続で表示されている画像](https://www.pyxofy.com/content/images/2021/10/clones-of-arrow.jpg)
でもこのままだと、コントローラーをつづけておす、連打(れんだ)すると、矢(や)のクローンがつぎつぎと出てきてしまいます。
5. やを1本ずつうつ
コントローラーを連打(れんだ)できないようにして、矢(や)を1本ずつうつようにしましょう。
そのためにつかうのは、変数(へんすう)です。
へんすうをつくろう
コントローラーがおされたとき、矢(や)のクローンをつくっていいかどうかを、変数(へんすう)できめます。
- 「やをうつ」というなまえの変数(へんすう)をつくる
![矢を打つという名前の変数がブロックパレットに表示されている画像 矢を打つという名前の変数がブロックパレットに表示されている画像](https://www.pyxofy.com/content/images/2021/10/make-a-variable.jpg)
変数(へんすう)に入れる値(あたい)は、「マル」か「バツ」のどちらかにしますよ。
- マル…矢(や)のクローンをつくれる
- バツ…矢(や)のクローンをつくれない
さいしょは、やをうつを(マル)にする
プログラムをスタートさせるときは、やをうつを(マル)にしておきましょう。
![はたがおされたときの下に矢を打つをマルにするを追加する はたがおされたときの下に矢を打つをマルにするを追加する](https://www.pyxofy.com/content/images/2021/10/variable-true-at-first.jpg)
もし、やをうつが(マル)なら
コントローラーがおされたときに、矢(や)のクローンをつくります。
- 「うつをうけとったとき」
- 「もし、やをうつが(マル)なら」
- 「じぶんじしんのクローンをつくる」
![打つを受け取った時の下にもし矢を打つがマルならを追加する 打つを受け取った時の下にもし矢を打つがマルならを追加する](https://www.pyxofy.com/content/images/2021/10/if-variable-true.jpg)
やをうつを(バツ)にする
クローンをつくったあと、つぎのクローンがつくれないようにしましょう。
- 「やをうつを(バツ)にする」
![クローンをつくったあとに矢を打つをバツにするをつなげる クローンをつくったあとに矢を打つをバツにするをつなげる](https://www.pyxofy.com/content/images/2021/10/variable-false.jpg)
やをうつを(マル)にする
うった矢(や)がステージのはしまでうごいたら、つぎのクローンをつくれるようにしましょう。
- 「はしにふれたまでくりかえす」の下に、「やをうつを(マル)にする」を追加(ついか)する
![クローンがステージの端まで動いた後に矢を打つをマルにするを追加する クローンがステージの端まで動いた後に矢を打つをマルにするを追加する](https://www.pyxofy.com/content/images/2021/10/variable-true-again.jpg)
コントローラーをおして、矢(や)を1本ずつうてるようになりました!
![矢の完成プログラム 矢の完成プログラム](https://www.pyxofy.com/content/images/2021/10/arrow-program.jpg)
6. ふうせんをプログラミングする
カラフルな風船(ふうせん)を、ステージのアチコチに表示(ひょうじ)しましょう。
スプライトをよういしよう
- 「Balloon (ふうせん)」のスプライトをえらぶ
- 矢(や)にあたってわれたときのコスチュームをえがく
![風船が割れた様子を表すコスチューム 風船が割れた様子を表すコスチューム](https://www.pyxofy.com/content/images/2021/10/draw-costume.jpg)
クローンをつくろう
- いろのこうかをかえながら、クローンをたくさんつくる
![カラフルなクローンを50個作るコード カラフルなクローンを50個作るコード](https://www.pyxofy.com/content/images/2021/10/create-colorful-clones.jpg)
- ステージのアチコチに表示(ひょうじ)する
![どこかの場所へ行くコード どこかの場所へ行くコード](https://www.pyxofy.com/content/images/2021/10/go-to-random-position-2.jpg)
弓矢(ゆみや)とコントローラーのところには、風船(ふうせん)が表示(ひょうじ)されないようにしましょう。
- はいけいの白いぶぶんに、ふれないようにする
![白色にふれたではないまでどこかの場所へ行くをくりかえす 白色にふれたではないまでどこかの場所へ行くをくりかえす](https://www.pyxofy.com/content/images/2021/10/not-touching-white.jpg)
あたりはんてい
- 矢(や)にあたったら、われたコスチュームにかえたあと、クローンをさくじょする
![矢にふれたらクローンを削除するコード 矢にふれたらクローンを削除するコード](https://www.pyxofy.com/content/images/2021/10/collision-detection.jpg)
7. プログラムかんせい
コントローラーで弓矢(ゆみや)をそうさして、風船(ふうせん)をわるゲームができました!
![風船のプログラム 風船のプログラム](https://www.pyxofy.com/content/images/2021/10/balloon-program.jpg)
![](https://www.pyxofy.com/content/images/2024/07/cover-page-320-4.png)
「きょうからはじめるスクラッチプログラミング入門」Pyxofy (著)
Pyxofy が Scratch の基本をまとめた電子書籍を出版しました。
Kindle・Apple Books からご購入ください。
まとめ
今回(こんかい)は、プロジェクトの中にコントローラーをつくってあそぶシューティングゲームをつくってみました。
スプライトでコントローラーをつくれば、キーボードのないタブレットでもゲームをたのしむことができますね!
次回(じかい)は、キーボードの「やじるしキー」でスプライトをうごかす方法(ほうほう)をしょうかいします。
\この記事が参考になったら Tweet おねがいします/