今回は定番のシューティングゲームをScratch(スクラッチ)で作ってみたいと思います。
シューティングの弾とターゲットはクローン機能を使って作ります。
また、おなじみの変数や条件分岐(もし〜なら)もフル活用しますよ!
スクラッチを使うのが初めての方は、まずこちらの記事で基礎を覚えましょう。
-
プログラミング学習はスクラッチから!だれでも簡単・使い方入門
プログラミング学習を始める入り口として最適なScratch(スクラッチ)の始め方や基本操作を解説します。 小中学生のお子さんを持つご両親はもちろん、プログラミング初心者の方にもオススメで ...
続きを見る
2020/2/17追記
今回ご紹介したスクリプトではを押しても敵が出てこない不具合がたまに発生するため、一部スクリプトを変更しました。変更箇所は以下の通りです。(詳しくは画像をご参照ください。)
- Ghostの"が押されたとき" を "メッセージ1を受け取ったとき" に変更
- Ghostの"クローンされたとき" の最後にある "メッセージ1を送る" と "すべて止める" を削除
- 背景の"TIME=30にする" の後に "メッセージ1を送る" を追加
- Ghostの "すべてを止める" を背景のスクリプトに移動
この記事のもくじ
弾を出すスプライトを作る
シューティングゲームに欠かせないのが敵を撃つ「弾」です。
まずは弾を出すスプライトから作り始めましょう。
次にParrotに飛んでいるような動きを加えたいので、コスチュームを利用します。
Parrotの"コスチューム"タブを開くと、コスチュームが2つあるのがわかります。
スクリプトゾーンにもう1つ "が押されたとき"を追加し、その下にコスチュームが0.2秒ごとに変わるスクリプトを加えます。
ゲームクリア時にParrotの姿を隠すようにするので、ここで前もって"表示する"も加えておきましょう。
これでParrotが飛びながら↑↓キーで上下に動くスクリプトができました。
弾の動きをクローンで作る
次はParrotから弾を発してみましょう。
弾はクローンを利用することで無数に発射できるようにします。
ここでニャアからの問題です!
・
・・
・・・
ニャアの問題 1の答え
"Parrotへ行く"がなぜ必要かは、試しにこのスクリプトを消してみるとわかります。
"Parrotへ行く"があることで、Parrotから弾を発射しているように見せられます。
ニャアの問題 2の答え
弾の速さを速くするには、"X座標を○ずつ変える"の○の中の数字を大きくすると出来ます。
試してみてください。
ちなみにクローンを使うと発生する問題がもうひとつ…それは、弾を繰り返し撃ち続けていると、このように画面の端に溜まってしまうことです。
これではプログラムが重くなってフリーズしたりクローンが生まれなくなってしまうので、端に着いたら消えるようにしましょう。
"が押されたとき"→"隠す"は、Ball本体の姿を隠してクローンだけ表示させるのに必要です。
TIMEの設定が重要!
以前「もぐらたたき」の回でやりましたが、今回も変数を使って制限時間を作ります。
"TIME=0まで繰り返す"がとても重要で、ゲームをコントロールする重要ポイントとなります。
TIME=0になるとすべてが止まるという設定ができました。
敵の動きをクローンで作る
続いて敵の動きをクローンで作ります。
さて、敵(Ghost)のスクリプトは全体としてこのようになりました。
コスチュームの変化をしながら動かしたい場合は、"クローンされたとき"をもう1つ作り、その後にスクリプトを加えましょう。
例としてこのような感じです。
ゲームクリア画面への切り替え
先ほど設定したゲーム背景に"GAME CLEAR"と文字を加えてゲームクリア画面を作りましょう。
ゲームクリア画面を作れたらスクリプトゾーンへ戻り、スクリプトを設定しましょう。
最後に"背景をBlue Sky2 2にする"を加えるだけです!
シューティングゲームの基本が完成!
ここまででシューティングゲームの基本となるものが完成しました!
次回以降は発展版として
- 横スクロールする
- 敵を強くしてゲームを難しくする
を設定してみたいと思います。
ニャアからのヒントがあるので、次回までに考えてみましょう。
ちなみにニャアはTIME=15(制限時間半分)になったら敵が暴走して強くなるという設定にしました。
いろいろ考えてみてゲームをより面白くしてみてください。
次回シューティングゲームの発展版をお楽しみに!
『変数とリストがわかるScratchゲーム作り3レッスン』のnoteも作りました!あわせてどうぞ?