Scratch(スクラッチ) で簡単ゲーム作成!アクションゲーム

このページでは
人気キッズプログラミング教材のScratch(スクラッチ)を使って、誰でも簡単に作れるアクションゲームの作り方をご紹介します。

ご紹介するアクションゲームは、PCならスペースキーもしくはマウスクリック、タブレットならタップするだけの簡単ゲーム!単純ですが楽しめる作品ですので、こどもも盛り上がること間違いなし。

誰でも簡単に作ることができるので、今回紹介する「Harry Spura」をベースに自分なりのアクションゲームを作ってみてください^_^
(タイトルはこどもが適当につけてるので深い意味はありません・・・)

それでは楽しんでScratchでプログラミングを進めましょう!


Scratchアクションゲームの要素

今回のゲームの完成形です。

プログラミングを進める際に、今回のゲームの要素をピックアップします。

  • ハリセンボン(プレイヤー)の動き:縦ジャンプアクション
  • サメ(敵)の動き:左右からサメが襲いかかってくる
  • ステージをクリアするごとにスピードアップ
  • サメもしくは画面上下にプレイヤーが触れるとゲームオーバー

それぞれの要素について、ひとつずつ進めていきましょう。

Scratchゲーム要素①:縦ジャンプアクション

Scratch(スクラッチ )でジャンプアクションのプログラムを作るにはいくつかステップがあります。

ゴールはスプライトのy座標を、変数:重力分だけ移動させるプログラムを作り、さらに変数:重力を変化させることでジャンプの方向とスピードを制御していきます。

順を追ってみてみましょう。

キー操作やタップした時のジャンプの幅・音を設定する

まず最初にジャンプの幅・音を設定します。

Scratchで作るアクションゲームで重力ジャンプを作る方法
ここで目指すプログラム

キー操作に反応して、

  • ジャンプの音を鳴らす
  • 上方ジャンプの幅(移動量)を決める
 

手順1
イベント:ゲームスタートをうけとったとき
ゲーム開始のメッセージを作ります
手順2
せいぎょ:ずっと
何回でもジャンプできるようにずっとブロックで囲う
手順3
せいぎょ:もしスペースキーがおされた または マウスがおされた なら
キー操作やマウスクリック・画面タップをトリガーに設定。
・せいぎょブロックもし〜ならの中にえんざん:◇または◇を入れる
・さらにしらべる:スペースキーがおされたマウスがおされたを組み込む
手順4
おと:Zoopのおとをならす
ジャンプする際の音を加えます
手順5
へんすう:じゅうりょくを3にする
へんすう:じゅうりょくを作って、一旦3あたりに設定 

 

これだけでは、プレイヤースプライトはタップしても動きません。

そこで続いて重力に従ってスプライトがy座標を変えるようプログラミングしましょう。

さらに、実際のジャンプのように、重力を発生させるプログラムも一緒に組んでしまいます。

重力を発生させて、実際のジャンプのようなアクションを作る
Scratchスクラッチ で重力ジャンプアクションを設定する方法

ここで目指すプログラム
  • スプライトを重力に従って動くようにする
  • 重力をだんだんと変化させてリアルなジャンプにする
 

手順1
イベント:ゲームスタートをうけとったとき
ゲーム開始のメッセージを作ります
手順2
せいぎょ:ずっと
常に動き続けるようにずっとブロックで囲う
手順3
うごき:yざひょうを(じゅうりょく)ずつかえる
y座標を◯ずつ変えるブロックの中に、変数:じゅうりょくをいれる。これでタップして重力=3となれば、上に3ずつ移動するようになる。 
手順4
へんすう:じゅうりょくを-0.15ずつかえる
このままではスプライトは上に移動し続けてしまう。へんすう:重力を徐々にマイナスしていくことで、上昇するスピードをだんだん遅くし、次第に落ちてくるジャンプアクションが完成する
 

 

これでジャンプアクションの設定は完了です。変数:重力の数字を色々と変えれば、早いジャンプや大きなジャンプなど色々と作成できるので、試してみてください。

MEMO

このままだと、ゲームをやり直したりするときに、変数:重力が最後の数値のままになってしまうので、スタート時はリセットされるようにしておきましょう。

Scratchで作るジャンプアクションゲームの1要素

注意

今回は海の中ということもあり、連続ジャンプも可能なプログラムにしました。地上での1段ジャンプの設定は別のプログラムが必要になります。

Scratchゲーム要素②:左右からランダムに敵を発生させる

続いて、敵スプライトのプログラムを作りましょう。

今回は、左右から襲いかかるサメを避けつづけるゲームを作りたいので、ランダムに左右からサメを発生させるプログラムを作ります。

左から出てくる敵のプログラムをつくる

左右からランダムに出てくるようにする条件分岐のプログラムを作るのも一つですが、より単純に左から出てくるプログラムを作り、コピーする方法で進めます。

クローン機能を使ってたくさんの敵を表示する
Scratchでクローンプログラムを作る①


ここで目指すプログラム
  • 任意の間隔で敵のクローンをつくる
  • 一定数のクローンを作ったらステージクリアにする
 

手順1
イベント:がおされたとき+みため:かくす
本体は常に隠しましょう
手順2
イベント:ゲームスタートをうけとったとき
ゲームスタートの合図で動くようにします 
手順3
せいぎょ:6かいくりかえす
敵が出てくる数をここで決めます。 
手順4
せいぎょ:2びょうまつ
続いて敵が出てくるペースを決めます。
手順5
せいぎょ:じぶんじしんのクローンをつくる
回数・頻度を決めて、このブロックでクローンを作ります。
手順6
せいぎょ:5びょうまつ+イベント:ステージクリアをおくる
敵が全部出てきて少し経ったらステージクリアという設定にして、メッセージを送るようにプログラムしましょう。
 

まずは敵のクローンを「何秒間隔で」・「何匹」発生させるのか、決めました。

続いて、作られたクローンの動きをプログラミングします。

クローンをランダムな高さに出現させて動かす
Scratchでクローン機能の使い方②



ここで目指すプログラム
  • クローンを画面左のランダムな高さに出現させる
  • プレイヤーもしくは画面右に着くまで移動する
  • プレイヤーもしくは画面右に触れたらクローンを消す
 

手順1
せいぎょ:クローンされたとき
作成したクローンのプログラミングに使用します
手順2
うごき:xざひょうを◯、yざひょうをらんすうにする
・x座標は画面左端の固定値に設定
・ランダムにしたいy座標は、えんざん:◯から◯までのらんすうを組み入れて、任意の高さに設定

 

手順3
みため:ひょうじする
クローンの位置が決まったら表示します
手順4
せいぎょ:x座標=◯ または プレイヤーにふれた までくりかえす
続いてプレイヤーもしくは画面右に触れるまで繰り返し行動するように設定
手順5
うごき:xざひょうを5ずつかえる
好きな数字を入れて、敵の動きの速さを決めます
手順6
みため:かくす+せいぎょ:このクローンをさくじょする
・画面端、もしくはプレイヤーに当たったら見えないようにします
・このままだとクローンは消えていないので、必ず削除するブロックを組み込みましょう
 

これで次々とサメが出てきて襲ってくるようにできました。

ただこれでは左から右への動きしかなく、少々面白みに欠けてしまいます。

そこで、右からもサメが出てくるように設定していきましょう。

右から出てくる敵を簡単に作る

同じようなプログラムは スプライトごとコピーしてしまう
スプライトのコピー(ふくせい)
ここで目指すプログラム
  • 同じような動きなので、コピーして手軽に済ませる
  • そのままコピーできない部分に注意

 

ここでは左から出てくる敵を、ほぼ同じように右から出てくるようにしたい。

そんな時はスプライトごとコピーしてしまいましょう。

右下のスプライトをダブルタップもしくは右クリックして「ふくせい」するだけです。

そのまま使えない部分のみ修正する

ただしコピーしたままでは左から右に出てきてしまうので、右から左になるように修正します。

  1. 敵(サメ)の向きを180度回転させます。
     ※回転方向を左右のみにしないと上下も逆さになるので注意
  2. クローンの位置を逆に設定します。
     ※右から左への移動はマイナスの数字を使いましょう
  3. 出現の回数・間隔を調整する
注意
コピーしたままのプログラムにはステージクリアをおくるが組み込まれたままです。
このメッセージは右左どちらか1回でいいです。一番最後に出てくる方のメッセージブロックを残して、片方は消しておきましょう

Scratchゲーム要素③:ステージクリアごとにスピードアップ

ここまでで1ステージクリアまでのプログラムは完成です。

このままだと簡単でつまらないので、さらにステージを進むごとにだんだんと動きを早くして、ゲームの面白さを引き上げます。

何ステージまで行けるか親子で競うこともできて盛り上がりますよ♪

ステージ設定をつくって次のステージに進むようにする

変数ブロックでステージ設定を作る
Scratchでゲームにステージ設定を入れる

敵をすべて避けたらステージクリアのメッセージを送るようにしました。

ここで変数:ステージを作って、ステージクリアのたびにステージを+1するようにプログラミングします。

MEMO
ステージクリアのたびに、一旦スプライトの動きを止めましょう。そんな時はスプライトのほかのスクリプトをとめるブロックを使いましょう。
MEMO
変数:ステージを作ったら、ゲーム開始時にステージが1になるよう、せいぎょ:ステージを1にするを忘れずに追加しておきましょう。

ゲームに区切りを入れるため次のステージまでのテロップを入れる

同じくステージクリアのメッセージを受け取ったら、「次のステージ」と表示させ、ゲームに区切りを入れます。

この時、表示が消えるのと合わせてゲームスタートをおくるを入れれば、また次のステージが始まるようになります。

MEMO
「次のステージ」の表示は、ゲームスタート時に見えないようにするため、:がおされたとき後に位置調整をした上で隠して置きましょう。

これでステージがどんどんと進んでいくようにプログラミングできました。

続いて、ステージが進んだらゲームの難易度が難しくなるようにします。

ステージが進むたびにスプライトの動きを早くする設定

今回は、ステージが進むごとにスプライトの動きが早くなるようにプログラミングしたいと思います。

ジャンプの高さをだんだん高くする

Scratchでジャンプの高さをだんだん高くする方法
まずはジャンプの高さをだんだんと大きくなるように設定してみます。

そのためには、最初じゅうりょくを3にすると固定していたところに、2.8+(0.2xステージ数)となるように演算と変数のブロックを組み合わせます。

あとは数字を好きなようにいじって見てください。

落ちるスピードもだんだんと早くする

Scratchでジャンプの落下速度をだんだん早くする方法
同じように落ちるスピードについても、変数:ステージを重力に組み入れて変化させてみます。

こちらも最初じゅうりょくを-0.15ずつかえると固定していたところに、-0.10+(-0.05xステージ数)となるように演算と変数のブロックを組み合わせます。

こちらも数字を好きなようにいじって見てください。

MEMO
「次のステージ」の表示は、ゲームスタート時に見えないようにするため、:がおされたとき後に位置調整をした上で隠して置きましょう。
敵(サメ)の移動スピードもだんだんと早くする


敵の移動スピードの調整も同じような考え方ですね。

こちらも最初x座標を5ずつかえると固定していたところに、4+ステージとすれば良いだけです。結構簡単ですね。

同じように右からくるサメについてもプログラムを修正してみてくださいね。

Scratchゲーム要素④:ゲーム開始・ゲームオーバーの設定

これでほぼゲームは完成です。あとはゲームのスタート画面とゲームオーバーの設定を作って完成させちゃいましょう。

ゲーム開始の設定

Scratchで作るゲームスタート画面
ここで目指すプログラム
  • ゲーム開始のテロップ(スプライト)を作る
  • スペースキーやクリックされたらゲームスタートにする

ゲームスタートは非常に単純。

スタート画面をスプライトで作って、キー操作によってゲームスタートのメッセージを送るだけです。

あとはひょうじするかくすも忘れずに。

ゲームオーバーの設定

ゲームオーバーは2つのプログラムに分けて設定をします。

ゲームオーバーの判定を作る
Scratchアクションゲームのゲームオーバー判定
ここで目指すプログラム
  • プレイヤーが端や敵に触れたら、という条件分岐を使う
  • 端や敵に触れたらゲームオーバーのメッセージを送る

まずはゲームオーバーになる条件を決めて、メッセージブロックを使ってゲームオーバーのきっかけを作りましょう。

MEMO

もし◇ならのブロック1つに、えんざん:◇または◇を組み合わせていくこともできますが、3つ以上使うとなぜかバグでゲームオーバーになりませんでした。

そのためここではもし◇ならを3つ使っています。

ゲームオーバーの判定を作る
Scratchで作るゲームオーバー画面

ここで目指すプログラム
  • ゲームオーバーのメッセージを受けて画面を表示
  • ゲームオーバーの音を鳴らして、全てのプログラムをストップする

あとはゲームオーバーのメッセージを受けて、終了画面と音を入れて、すべてをとめるを加えればゲーム完成!

ここでもスタート時にかくすのは忘れずに。

ようやくこれで一連のプログラムは完成です。ぜひ遊んでみてください^_^

まとめ:Scratchでやり込み系のアクションゲームを!

いかがでしたでしょうか?
上のプログラムを組み替えれば、簡単にアクションゲームが制作可能ですよ。
アクションの基礎になっているプログラムだと思いますので、ぜひ色々と発展させてみてください♪
ちょっと難しい!と感じた方プログラミング教室に通うのもありだと思いますので、一度無料体験に行ってみるのもいいですね^_^

▼パソコン操作から安心の教室

▼ロボットプログラミングなら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です