Scratch3.0で簡単なゲームを作ろう【プログラミング入門】

Scratch3.0で簡単なゲームを作ろう【プログラミング入門】

小学生にもおすすめされているビジュアルプログラミングのScratchで、簡単なゲームを作りました。

複数のスプライトや背景のコード(ブロック)を見つつ、基本的な動きやイベント、制御、変数ブロックの使い方や、ブロック定義、変数やクローンの作り方などを確認できます。

なお今回のScratchプログラミングでのゲーム作成にあたっては、ドットインストールを参考にしました。

ドットインストール公式サイト

ドットインストールは前のバージョンのScratch2.0を使った解説となっていますが(’19年11月時点)、それでも使い方はかなり参考になると思います。(こちらの記事ではScratch3.0で解説しています。)

スポンサーリンク

Scratch3.0で作る簡単なゲーム

今回作ったゲームは下のようなゲームです。うさぎを左右に動かしてクリスタルをとれば+2点、卵に当たると-3点になるゲームです。

 

ゲーム作成にはセンスも必要ですが、ゲーム好きのお子さんならもっと楽しいゲームをいろいろ開発できるかもしれませんね。

スポンサーリンク

Scratchゲームの作り方

どのようにScratchでプログラミングしていったかを確認します。

背景とスプライトのコード

背景にはゲームスタート、ゲーム中、ゲームオーバーの3つの画面を準備しました。背景から「Forest」を選び、スタート時とゲームオーバー時用の背景はテキストで書き加えています。

スプライトは全部で6種類です。

  • うさ子 …スプライトから「rabbit」を選び、cとdのコスチュームを削除したもの
  • うさ子2 …「rabbit」の「rabbit-d」のみ残したもの
  • Crystal
  • Egg
  • +2点 … テキストとペンで作成、コスチュームを2パターン
  • -3点 … テキストで作成

背景のスクリプトコード

旗がクリックされるとスタート画面(Start)になり、2秒後には背景をゲーム用の画面(Forest)に、もしタイマーが22秒を超えたらゲーム終了になってゲームオーバー画面(Game Over)に、すべてのスプライトも動きを停止するように指定しています。

今回はデモのため短い時間に設定してます。時間をもっと長くして、スコアによって背景を変えたりすれば、もっとおもしろくなるかもしれません。

うさ子のコード

少し時間を置いてから表示、ゲームオーバーで消えるように設定してます。

→を押したら右に、←を押したら左に動くように、またテクテク歩く動きを出すためコスチュームを交互に変えています。うさ子のスコアが増えたり減ったりする設定もしています。

うさ子2のコード

うさ子2がゲームオーバー時のみに出てくるよう設定してます。

変なところにうさ子2が現れないよう、うさ子の最後の立ち位置に出るようにしています。

Crystalのコード

Crystalが降ってくるように設定しています。ドットインストールの解説を参考に、クローンで増えるようにしました。

Eggのコード

Crystalとほぼ似たような設定ですが、Crystalより降ってくるスピードを速くしました。

+2点のコード

コスチュームに光ありとなしの2パターンを作り、うさ子にクリスタルがぶつかったときに現れるよう設定しています。

-3点のコード

うさ子にクリスタルがぶつかったときに現れるよう設定しています。

うさぎの歩く動作

→キーを押すとうさぎが右に歩くような動作のコードを作りました。制御ブロック「もし~なら」を使い、右に動かすので角度は90度に、適度なスピードにするため「10」歩動かすようにしました。数字を上げれば動きが速くなります。

「次のコスチューム」を使うことでうさ子がテクテク歩く動きを作ります。コスチュームが複数あるスプライトを選択するか、自作する必要があります。

これらの動作を繰り返すため、制御ブロック「ずっと」でブロックをはさみます。

なお左向きは下のようなコードにしました。

右向きとほとんど同じですが、「回転方法を左右のみにする」というブロックを入れて、さかさまのままうさ子が歩くのを防ぎます。

クローンをつくる

複数のクリスタルや卵を落とすため、クローンを利用しました。使い方を誤るとかなりおかしな動作になります。

クリスタルのコードで、上の「1秒待つ」を削除すると、下の画像のように次から次へとクリスタルのクローンが作られてしまいます。

 

「クローンされたとき」の処理として、「このクローンを削除する」を入れるのも重要です。

例えば下のコードはクローンされたときクリスタルを元の位置から降らせるようにして、ある程度下まで降りてきたら消えるように設定しています。

「このクローンを削除する」を入れないと、下の画像のようにクリスタルがどんどん下にたまってしまいます。

ブロック定義

コードをすっきりさせたいときはブロック定義でブロックをまとめて定義することができます。同じコード(ブロックのつながり)が複数出てくるときに便利です。

変数

「変数を作る」から変数「SCORE」を作りました。

うさ子がクリスタルとぶつかったらこのSCOREに+2点、卵とぶつかったらSCOREに-3点を与えるように設定しています。

まとめ

Scratchで簡単なゲームを作る方法を、コードを見ながらざっと確認していきました。

制御ブロックの使い方や変数の設定、座標の位置など、ちょっと慣れが必要なものもありますね。

Scratchの公式サイトではいろんなゲームやアニメなどの作品が公開されています。コードの中身も見ることができるので、参考にしながらいろいろアレンジしてみると良いと思います。