ご紹介するアクションゲームは、PCならスペースキーもしくはマウスクリック、タブレットならタップするだけの簡単ゲーム!単純ですが楽しめる作品ですので、こどもも盛り上がること間違いなし。
誰でも簡単に作ることができるので、今回紹介する「Harry Spura」をベースに自分なりのアクションゲームを作ってみてください^_^
(タイトルはこどもが適当につけてるので深い意味はありません・・・)
それでは楽しんでScratchでプログラミングを進めましょう!
コンテンツ
Scratchアクションゲームの要素
今回のゲームの完成形です。
プログラミングを進める際に、今回のゲームの要素をピックアップします。
- ハリセンボン(プレイヤー)の動き:縦ジャンプアクション
- サメ(敵)の動き:左右からサメが襲いかかってくる
- ステージをクリアするごとにスピードアップ
- サメもしくは画面上下にプレイヤーが触れるとゲームオーバー
それぞれの要素について、ひとつずつ進めていきましょう。
Scratchゲーム要素①:縦ジャンプアクション
Scratch(スクラッチ )でジャンプアクションのプログラムを作るにはいくつかステップがあります。
ゴールはスプライトのy座標を、変数:重力分だけ移動させるプログラムを作り、さらに変数:重力を変化させることでジャンプの方向とスピードを制御していきます。
順を追ってみてみましょう。
キー操作やタップした時のジャンプの幅・音を設定する
まず最初にジャンプの幅・音を設定します。

キー操作に反応して、
- ジャンプの音を鳴らす
- 上方ジャンプの幅(移動量)を決める
・せいぎょブロックもし〜ならの中にえんざん:◇または◇を入れる
・さらにしらべる:スペースキーがおされたとマウスがおされたを組み込む
これだけでは、プレイヤースプライトはタップしても動きません。
そこで続いて重力に従ってスプライトがy座標を変えるようプログラミングしましょう。
さらに、実際のジャンプのように、重力を発生させるプログラムも一緒に組んでしまいます。
重力を発生させて、実際のジャンプのようなアクションを作る

- スプライトを重力に従って動くようにする
- 重力をだんだんと変化させてリアルなジャンプにする
これでジャンプアクションの設定は完了です。変数:重力の数字を色々と変えれば、早いジャンプや大きなジャンプなど色々と作成できるので、試してみてください。
このままだと、ゲームをやり直したりするときに、変数:重力が最後の数値のままになってしまうので、スタート時はリセットされるようにしておきましょう。
今回は海の中ということもあり、連続ジャンプも可能なプログラムにしました。地上での1段ジャンプの設定は別のプログラムが必要になります。
Scratchゲーム要素②:左右からランダムに敵を発生させる
続いて、敵スプライトのプログラムを作りましょう。
今回は、左右から襲いかかるサメを避けつづけるゲームを作りたいので、ランダムに左右からサメを発生させるプログラムを作ります。
左から出てくる敵のプログラムをつくる
左右からランダムに出てくるようにする条件分岐のプログラムを作るのも一つですが、より単純に左から出てくるプログラムを作り、コピーする方法で進めます。
クローン機能を使ってたくさんの敵を表示する

- 任意の間隔で敵のクローンをつくる
- 一定数のクローンを作ったらステージクリアにする
まずは敵のクローンを「何秒間隔で」・「何匹」発生させるのか、決めました。
続いて、作られたクローンの動きをプログラミングします。
クローンをランダムな高さに出現させて動かす

- クローンを画面左のランダムな高さに出現させる
- プレイヤーもしくは画面右に着くまで移動する
- プレイヤーもしくは画面右に触れたらクローンを消す
・ランダムにしたいy座標は、えんざん:◯から◯までのらんすうを組み入れて、任意の高さに設定
・このままだとクローンは消えていないので、必ず削除するブロックを組み込みましょう
これで次々とサメが出てきて襲ってくるようにできました。
ただこれでは左から右への動きしかなく、少々面白みに欠けてしまいます。
そこで、右からもサメが出てくるように設定していきましょう。
右から出てくる敵を簡単に作る
同じようなプログラムは スプライトごとコピーしてしまう

- 同じような動きなので、コピーして手軽に済ませる
- そのままコピーできない部分に注意
ここでは左から出てくる敵を、ほぼ同じように右から出てくるようにしたい。
そんな時はスプライトごとコピーしてしまいましょう。
右下のスプライトをダブルタップもしくは右クリックして「ふくせい」するだけです。
そのまま使えない部分のみ修正する
ただしコピーしたままでは左から右に出てきてしまうので、右から左になるように修正します。
- 敵(サメ)の向きを180度回転させます。
※回転方向を左右のみにしないと上下も逆さになるので注意 - クローンの位置を逆に設定します。
※右から左への移動はマイナスの数字を使いましょう - 出現の回数・間隔を調整する
このメッセージは右左どちらか1回でいいです。一番最後に出てくる方のメッセージブロックを残して、片方は消しておきましょう。
Scratchゲーム要素③:ステージクリアごとにスピードアップ
ここまでで1ステージクリアまでのプログラムは完成です。
このままだと簡単でつまらないので、さらにステージを進むごとにだんだんと動きを早くして、ゲームの面白さを引き上げます。
何ステージまで行けるか親子で競うこともできて盛り上がりますよ♪
ステージ設定をつくって次のステージに進むようにする
変数ブロックでステージ設定を作る

敵をすべて避けたらステージクリアのメッセージを送るようにしました。
ここで変数:ステージを作って、ステージクリアのたびにステージを+1するようにプログラミングします。
ゲームに区切りを入れるため次のステージまでのテロップを入れる

同じくステージクリアのメッセージを受け取ったら、「次のステージ」と表示させ、ゲームに区切りを入れます。
この時、表示が消えるのと合わせてゲームスタートをおくるを入れれば、また次のステージが始まるようになります。
これでステージがどんどんと進んでいくようにプログラミングできました。
続いて、ステージが進んだらゲームの難易度が難しくなるようにします。
ステージが進むたびにスプライトの動きを早くする設定
今回は、ステージが進むごとにスプライトの動きが早くなるようにプログラミングしたいと思います。
ジャンプの高さをだんだん高くする
まずはジャンプの高さをだんだんと大きくなるように設定してみます。
そのためには、最初じゅうりょくを3にすると固定していたところに、2.8+(0.2xステージ数)となるように演算と変数のブロックを組み合わせます。
あとは数字を好きなようにいじって見てください。
落ちるスピードもだんだんと早くする
同じように落ちるスピードについても、変数:ステージを重力に組み入れて変化させてみます。
こちらも最初じゅうりょくを-0.15ずつかえると固定していたところに、-0.10+(-0.05xステージ数)となるように演算と変数のブロックを組み合わせます。
こちらも数字を好きなようにいじって見てください。
敵(サメ)の移動スピードもだんだんと早くする
敵の移動スピードの調整も同じような考え方ですね。
こちらも最初x座標を5ずつかえると固定していたところに、4+ステージとすれば良いだけです。結構簡単ですね。
同じように右からくるサメについてもプログラムを修正してみてくださいね。
Scratchゲーム要素④:ゲーム開始・ゲームオーバーの設定
これでほぼゲームは完成です。あとはゲームのスタート画面とゲームオーバーの設定を作って完成させちゃいましょう。
ゲーム開始の設定

- ゲーム開始のテロップ(スプライト)を作る
- スペースキーやクリックされたらゲームスタートにする
ゲームスタートは非常に単純。
スタート画面をスプライトで作って、キー操作によってゲームスタートのメッセージを送るだけです。
あとはひょうじするとかくすも忘れずに。
ゲームオーバーの設定
ゲームオーバーは2つのプログラムに分けて設定をします。
ゲームオーバーの判定を作る

- プレイヤーが端や敵に触れたら、という条件分岐を使う
- 端や敵に触れたらゲームオーバーのメッセージを送る
まずはゲームオーバーになる条件を決めて、メッセージブロックを使ってゲームオーバーのきっかけを作りましょう。
もし◇ならのブロック1つに、えんざん:◇または◇を組み合わせていくこともできますが、3つ以上使うとなぜかバグでゲームオーバーになりませんでした。
そのためここではもし◇ならを3つ使っています。
ゲームオーバーの判定を作る

- ゲームオーバーのメッセージを受けて画面を表示
- ゲームオーバーの音を鳴らして、全てのプログラムをストップする
あとはゲームオーバーのメッセージを受けて、終了画面と音を入れて、すべてをとめるを加えればゲーム完成!
ここでもスタート時にかくすのは忘れずに。
ようやくこれで一連のプログラムは完成です。ぜひ遊んでみてください^_^
コメントを残す