Scratch(スクラッチ) 難易度★★⭐︎⭐︎⭐︎

Scratchでシューティングゲームの作り方 - クローン・変数・もし

 

今回は定番のシューティングゲームをScratch(スクラッチ)で作ってみたいと思います。

シューティングの弾とターゲットはクローン機能を使って作ります。

また、おなじみの変数や条件分岐(もし〜なら)もフル活用しますよ!

おさらいしながら進めるニャア

 

スクラッチを使うのが初めての方は、まずこちらの記事で基礎を覚えましょう。

プログラミング学習はスクラッチから!だれでも簡単・使い方入門

  プログラミング学習を始める入り口として最適なScratch(スクラッチ)の始め方や基本操作を解説します。 小中学生のお子さんを持つご両親はもちろん、プログラミング初心者の方にもオススメで ...

続きを見る

 

2020/2/17追記

今回ご紹介したスクリプトではを押しても敵が出てこない不具合がたまに発生するため、一部スクリプトを変更しました。変更箇所は以下の通りです。(詳しくは画像をご参照ください。)

  • Ghostの"が押されたとき" を "メッセージ1を受け取ったとき" に変更
  • Ghostの"クローンされたとき" の最後にある "メッセージ1を送る" と "すべて止める" を削除
  • 背景の"TIME=30にする" の後に "メッセージ1を送る" を追加
  • Ghostの "すべてを止める" を背景のスクリプトに移動

 

弾を出すスプライトを作る

シューティングゲームに欠かせないのが敵を撃つ「弾」です。

まずは弾を出すスプライトから作り始めましょう。

ポイント

  • "スプライトを選ぶ"→"Parrot"
    ※あなたの好きなスプライトでOK

  • "大きさ"の欄に数字を入力し、好きな大きさにする

  • "が押されたとき"を先頭にしてスクリプトを組み立てる
  • スタート時の位置を決める→"X座標を**, Y座標を**にする"で設定
  • ↑で上に、↓で下に移動するようにする→"もし< >なら"<○が押された>を使う
やってみてニャア!答えは下にあるニャア

・・

・・・

このようなスクリプトになりましたか?(座標は参考です)

次にParrotに飛んでいるような動きを加えたいので、コスチュームを利用します。

Parrotの"コスチューム"タブを開くと、コスチュームが2つあるのがわかります。

スクリプトゾーンにもう1つ "が押されたとき"を追加し、その下にコスチュームが0.2秒ごとに変わるスクリプトを加えます。

ゲームクリア時にParrotの姿を隠すようにするので、ここで前もって"表示する"も加えておきましょう。

これでParrotが飛びながら↑↓キーで上下に動くスクリプトができました。

Parrotのスクリプト全体

 

弾の動きをクローンで作る

次はParrotから弾を発してみましょう。

弾はクローンを利用することで無数に発射できるようにします。

撃ち過ぎるとネット環境によってはフリーズする可能性もあるニャア

ポイント

  • "スプライトを選ぶ"→"Ball"

  • "大きさ"の欄に数字を入力し、好きな大きさにする

  • "スペースキーが押されたとき""自分自身のクローンを作る"を追加

次に"クローンされたとき"のスクリプトをこのように作ってみましょう。

 

ここでニャアからの問題です!

ニャアの問題

  1. "Parrotへ行く"は、なぜ必要でしょう?
  2. 弾の速さを速くするには、どうすれば良いでしょう?

・・

・・・

ニャアの問題 1の答え

"Parrotへ行く"がなぜ必要かは、試しにこのスクリプトを消してみるとわかります。

弾がヘンテコな場所から発射されるニャア!

"Parrotへ行く"があることで、Parrotから弾を発射しているように見せられます。

 

ニャアの問題 2の答え

弾の速さを速くするには、"X座標を○ずつ変える"の○の中の数字を大きくすると出来ます。

試してみてください。

 

ちなみにクローンを使うと発生する問題がもうひとつ…それは、弾を繰り返し撃ち続けていると、このように画面の端に溜まってしまうことです。

これではプログラムが重くなってフリーズしたりクローンが生まれなくなってしまうので、端に着いたら消えるようにしましょう。

Ballのスクリプト全体

"が押されたとき"→"隠す"は、Ball本体の姿を隠してクローンだけ表示させるのに必要です。

 

TIMEの設定が重要!

以前「もぐらたたき」の回でやりましたが、今回も変数を使って制限時間を作ります。

ポイント

  • "変数を作る"→"TIME"という名前にする
  • 背景のスクリプトゾーンに以下のスクリプトを追加する
    ※ここで背景も決めておきましょう。(例:Blue Sky2)

制限時間は30秒にしたニャア

お好みで"色の効果を○ずつ変える"なども加えると楽しくなります。

"TIME=0まで繰り返す"がとても重要で、ゲームをコントロールする重要ポイントとなります。

TIME=0になるとすべてが止まるという設定ができました。

 

敵の動きをクローンで作る

続いて敵の動きをクローンで作ります。

ポイント

  • "スプライトを選ぶ"→"Ghost"
  • "大きさ"の欄に数字を入力し、好きな大きさにする

弾の時はスペースキーを押すのがクローンの条件でしたが、今回は1秒ごとに自動的にクローンされるようにします。

まず基本の動きがこちら。

このままだとただクローンが発生し続けるだけなので、弾に触れると消えるようにします。

  • "もしBallに触れたなら"のスクリプトを"TIME=0まで繰り返す"の中に追加(お好みでコスチュームの変更も)

また、敵が左端に達した時とParrotに当たった時にはゲームオーバーとします。

  • "もし端に触れたまたはParrotに触れたなら""すべてを止める"

"もし< >なら"の中には、演算ブロックを使って複数の条件を入れることができるので活用しましょう。

合体ニャア!

さて、敵(Ghost)のスクリプトは全体としてこのようになりました。

Ghostのスクリプト全体

コスチュームの変化をしながら動かしたい場合は、"クローンされたとき"をもう1つ作り、その後にスクリプトを加えましょう。

例としてこのような感じです。

コスチュームの変化もすると楽しい

 

ゲームクリア画面への切り替え

先ほど設定したゲーム背景に"GAME CLEAR"と文字を加えてゲームクリア画面を作りましょう。

ポイント

  • 背景をクリック→"背景"タブを開く
  • "Blue Sky2"を右クリック→"複製"

ゲームクリア画面を作れたらスクリプトゾーンへ戻り、スクリプトを設定しましょう。

最後に"背景をBlue Sky2 2にする"を加えるだけです!

 

シューティングゲームの基本が完成!

ここまででシューティングゲームの基本となるものが完成しました!

次回以降は発展版として

  • 横スクロールする
  • 敵を強くしてゲームを難しくする

を設定してみたいと思います。

ニャアからのヒントがあるので、次回までに考えてみましょう。

ニャアのヒント

  1. 横スクロールをするスクリプトはありませんが、”横スクロールしているように見せる”ことはできます。ヒントは新たなスプライトを使うことです。
  2. 敵を強くする方法としては、敵の速さ動きを変えたりクローンの発生の仕方を変えたりするのが効果的です。

 

ちなみにニャアはTIME=15(制限時間半分)になったら敵が暴走して強くなるという設定にしました。

いろいろ考えてみてゲームをより面白くしてみてください。

次回シューティングゲームの発展版をお楽しみに!

 

『変数とリストがわかるScratchゲーム作り3レッスン』のnoteも作りました!あわせてどうぞ?

 

 

ごきげんよう

 

-Scratch(スクラッチ), 難易度★★⭐︎⭐︎⭐︎
-, , ,

error: Content is protected !!

© 2024 ニャアのスクラッチ Powered by AFFINGER5