Hoicos Blog

Author: かどけん

Scratchでシューティングゲームを作ろう!【2】

Hoicosプログラミング教室

敵のプログラム、アニメーション、効果音を学ぶ。
eyecatch1 1 1024x728 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

Hello world!
この記事はScratchでシューティングゲームを作ろう!【1】を読んだ人向けの記事です。

前回の記事 

Scratchでシューティングゲームを作ろう!【1】


前回は操作キャラクターや弾の動きを設定しました。
今回はシューティングゲームに絶対に必要な敵のプログラムを作っていきましょう。

敵キャラの作成

前回同様、まず最初にスプライトを選んで敵キャラのデザインを決定します。

shooting11 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生


スプライトの大きさなどは実際のプレイ画面を見ながら数値を調節し、敵キャラのスプライトの名前を好きなものに変更しましょう。

今回、敵は一種類のみ作りますが、もし様々な敵を出したい場合はその都度スプライトを追加していきましょう。

敵キャラの設定事項

今回の敵キャラに加えるべき設定を挙げると

 ・ 一定時間に一体ランダムな場所から出現させる
 ・ 画面上から画面下まで一定速度で進む
 ・ 途中で自機もしくは弾に当たったら消滅

プログラミングする上で大まかな設定を最初にまとめることは非常に有用です。
自分でプログラミングする際もできる限りまとめることをおすすめします。

実際のプログラム

実際に上記の設定を実現できるよう、スクリプトエリアにブロックを置いていきましょう。(現在の画面が敵機のスクリプトエリアになっているか最初に確認しておこう。)

shooting13 1024x901 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

追加するブロックは大まかにこんな感じです。
では一つのかたまりごとに詳しく見ていきましょう。

shooting10 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

このかたまりでは、3秒ごとに敵機のクローンを作っています。
ここで敵が出てくるタイミングなどを調節しているのです。

クローンについて詳しくは述べませんが、クローンを作ることで、敵キャラを複数体同時に画面に映し出すことができるようになります。

shooting12 695x1024 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

このプログラムは、自身のクローンが作られたらそのクローンを画面上端のランダムな位置に配置するところからスタートします。

その後、画面下端に到達するもしくは弾に当たるまで下方向に進むことを繰り返します。
(”y座標を~ずつ変える”の値を変えると敵キャラのスピードが変わるよ)

0.01秒待つブロックが複数ありますが、これはクローンの削除を遅らせプログラムが作動する猶予を作るためにおいてあります。
これがないと動作が安定しません……もっといいやり方があるかも

実際に動かしてみると…

うまくいってる!
がしかし何か物足りない……

臨場感を演出しよう

ゲームのクオリティを上げるうえで演出は欠かせないです!
効果音 BGM アニメーション etc…
自分の思うままにゲームの演出をしていきましょう。

本記事では簡単なアニメーションと効果音を付け加えていきます。

アニメーションさせる

今回は敵キャラに自分の弾が当たったら爆発するアニメーションを作ります。

まず敵キャラのスプライトを選択し、新しいコスチュームを加えます。
今回使用した画像

https://ja.pngtree.com/freepng/fire-explosion-png-transparent_4199298.html

shooting14 1024x606 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

コスチューム
コスチュームとは、スプライトまたは背景が、その見た目を別のものに変化させるとき、その変化させる画像のことである。コスチュームは背景またはスプライトのスクリプトエディターから、左上の「コスチューム」を選択することでコスチュームの編集ができるようになる。 

次に敵キャラのスクリプトエディターに次のブロックを追加しましょう。

shooting15 1 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

上部では敵キャラを爆発画像に変え、徐々に爆発が大きくなるように
下部では大きさが最大になった後、透明度(幽霊)を上げていき最後には消えるようにしています。
この記事の最後にアニメーションの動画を添付してます。

これはほんの一例です。
紫色のブロックを自分で使ってみてどのように見た目が変化するのか学びつつ、自分の好きなようにパロメーターを変えてみよう。
(例:時間がたったら色を変える、弾が当たったら敵キャラが膨らむ等)

効果音をつける

爆発音とビームを打つ音を追加していきましょう!

効果音などの音に関連するものはピンク色のブロックで行います。
今回は画像の赤丸で示したブロックだけを使います。

shooting16 515x1024 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

まずインターネットから好きな効果音を探してダウンロードしましょう。
著作権には十分注意!
実際に自分が使った効果音はここから手に入れられます。

https://taira-komori.jpn.org/arms01.html

できたらScratch左上にある音タブを開き、そこから音をアップロードします。
(このとき開く音タブは音ブロックを追加したいスクリプトのものにする)

shooting17 1024x652 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

あとは下図のように「~の音を鳴らす」ブロックを先ほど作った敵キャラをアニメーションさせるブロックと一緒に追加して完成です。
簡単!!

shooting18 1 358x1024 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生
shooting19 1 - Scratchでシューティングゲームを作ろう!【2】-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

完成形はこちら   ※音が鳴るので注意!

最後に

最後まで読んでいただき大変ありがとうございます。

敵キャラが動くことでさらにゲームっぽくなってきたのではないでしょうか?
また、ビームを放つと鳴るピコピコ音、敵に当たると鳴る爆発音どれもゲームには欠かせない要素です。いろいろなところで工夫して自分らしいシューティングゲームを作っていってください。

さて、次回はシューティングゲームの肝である弾幕を作っていきます。
ぜひ読んでくださいね!



この記事がいいと思ったら↓のシェアボタンから

Comments

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。