今回はシューティングゲームの作り方を説明していきます。
シューティングゲームは、ゲーム中でも人気があり簡単に作れてカスタマイズも容易に出来ます。
作りながら学ぶテーマとしては最適なゲームですので本ページを参考にして作っていって下さい。
簡単なゲームが作れれば自分でアレンジをしてオリジナルなシューティングゲームを作ってみましょう。
目次
1対2のシンプルなシューティングゲームを作る
今回作るシューティングゲームは敵が2体のシンプルなシューティングゲームです。
まず、ゲームの完成形の動きを見てみましょう。
ゲームの機能をまとめると以下のような機能になります。
シューティングゲームの機能
- 横スクールするゲーム
- 横スクロールのみ可能で縦スクロールは出来ない
- 出現するモンスターは2対。X座標がランダムな場所から出現する。Y座標は同じ。(たくさん出現しない)
- モンスターは縦スクロールのみ可能
- モンスターは攻撃をする
- スペースキーを押す事で攻撃出来る
- モンスター1の攻撃は迎撃出来る
- ライフは10からスタートする。モンスターの攻撃に触れたらライフが1減る。モンスターに触れたらライフが3減る
- バリアのスコアが10の時にVボタンを押すとバリアが5秒間出現する。バリアは動いてもついてくる。
- モンスターを倒すと1点加点される
この機能を順に作っていきます。
このゲームに登場するスプライトの説明
まず最初にこのゲーム登場するスプライトを紹介していきます。
このゲームで登場するスプライトは以下になります。
■自分
・ナイト(このスプライトを操作します)
・ビーム(敵を攻撃する武器)
・バリア(敵から身を守るためのバリア)
■敵1
・ギャオス
・ばくだん(ギャオスの武器)
■敵2
・ガバン
・カッター(ガバンの武器)
このゲームで使用するスプライト
このシューティングゲームでは、ゲームを面白くするために「superpowers-asset-packs」の素材を使用しています。
以下のサイトからダウンロードするか、他のスプライトで代用して下さい。
https://github.com/sparklinlabs/superpowers-asset-packs
ビーム・バリア・ばくだん・カッターは上記には含まれてなく標準にもないものとなりますのでをスクラッチのペイントを使って作ってみましょう。
全く同じ形でなくてもいいでしょう。(このページではペイントの使い方は省略します)
シューティングゲームを作る
いよいよここからシューティングゲームを作っていきます。
なるべくシンプルなゲームにしようと思いましたが、思っていたより長くなりました。
1.ステージの動き
まず、最初にステージの動きを作っていきます。
このシューティングゲームのステージで行うのは音楽を流すのみです。
背景の設定は行います。
今回は、背景の選択画面より「宇宙」を選んだ後に「star」を選びます。
宇宙のような背景が設定されました。
ステージのプログラムでは以下を行います。
- ハタが押された時
- 終わるまで「Drum Satellite」を鳴らすをずっと繰り返す
- 左右の矢印キーで左右に動く
- 変数「ライフ」が「0」になれば、ゲームオーバー
- スペースキーでビームを発射する
- 大きさの調整(作ったビームの大きさによって変わります)
- 本体を隠す(クローンしたものを動かすので本体は隠します。)
- ステージから消します。
- 大きさが大きいので30%の大きさにします。
- ギャオスは、Y座標130のところに表示をします。
- 横のX座標は毎回同じ場所ではなく違った場所から表示したいので「-230から230」までの乱数にします。
- ギャオスの場所が決まったのでステージに表示をします。
- ビームに触れたら消える
- 変数「得点」を1増やす
- 元の場所に戻る
- ステージから消える(本体が消える)
- 大きさを調整する
- 0.5~1までの乱数秒まつ
- 自分自身のクローンを作る
- クローンは、0.2秒間隔で作る(ゲームを面白くするために変数「得点」が20以下の時は0.2秒間隔にしてみよう)
- クローンはずっと作る
- 変数「バリア」が10の時に「V」キーを押すとナイトの上に表示する(最初は見えない)
- バリアが表示されるのは5秒間
- ナイトが動いた場合はバリアも移動する
- 「V」キーを押すとバリア値は0になり、1秒間に1ずつ回復する
- 敵や敵の攻撃を跳ね返す
- ハタが押されたとき
- 隠す
- 変数「バリア」を「0」にする
- 変数「バリア」が「10」未満の場合に1秒毎に1増やす
- 横スクロールだけでなく縦スクロールも可能にする
- 敵3を作る
- 1対2ではなく敵をクローンして1対多のゲームにする
- ラスボスを登場させる
- ラスボスにもライフをつけてライフが0になれば倒すようにする
- ライフを回復させるアイテムを作る
- 味方のスプライトを追加する
- ゲーム開始60秒後に登場します。
- ラスボスは動きません。
- ラスボスはライフを「10」としてラスボスが倒されたらゲームオーバーになります。
- ラスボスの攻撃は「はかい光線」という名前にします。
- はかい光線は下に行くのではなく45~135度の角度で攻撃をします。
- ラスボスからの攻撃のダメージ、ラスボスへの攻撃は他と同じ「1」とします。
- ハタが押された時
- 変数「ラスボス」を隠す
- 変数「ラスボス」を「10」にする。(ラスボスのライフ)
- ステージから隠す
- 60秒待つ
- 変数「ラスボス」を表示する
- 以下をずっと繰り返します。
- ラスボスに行く
- 以下をずっと繰り返します。
これだけになります。
2.ナイトの動き
ナイトの動きは以下の3つです。
ナイトの動き
まずは、左右の矢印キーで動きを作っていきます。
ナイトの場所ですが、真ん中の下を左右に動くようにします。
X座標を「0」Y座標を「-140」にします。(同じでなくてもかまいません)
大きさを「45%」にします。
右向き矢印キーを押された時は、X座標を「10」ずつ変える、左向き矢印キーを押された時は、X座標を「-10」ずつ変えるとします。
上のプログラム「ずっと」で囲んみます。
このようなプログラムになります。
続いて変数「ライフ」が「0」になれば「ゲームオーバー」という部分を作っていきます。
変数「ライフ」「得点」を作ります。変数に関しては「スクラッチの変数をおぼえよう」をご覧ください。
ここでは、変数の初期化を行います。
変数「ライフ」… 「10」にします。数を大きくすればなかなかゲームは終わらなくなります。
変数「得点」 … 「0」にします。敵を倒すたびに「1」増えます。
変数「ライフ」が「1」より小さくなったゲームが終了するようにします。
このようなプログラムになります。
最後にスペースキーが押された時にビームで敵を攻撃するようにしよう。
ビームはスペースキーが押された時にクローンして敵に向かっていきます。
※クローンについてはこちらのページをご覧ください。
ナイトのプログラムはこのようになります。
「ビームのクローンを作る」の下にある「0.1秒まつ」の時間を大きくすると連射する間隔が長くなります。
3.ビームの動き
ビームの動きは、クローンされた時に上に進んでいき「端」に触れた時に消すようにします。
まずは以下を行います。
このようなプログラムになります。
クローンされた時の動きを作っていきます。
制御メニューに「クローンされたとき」というパーツがありますので持ってきます。
ビームはナイトから発射するので動きメニューより「どこかの場所へ行く」を持ってきます。
「どこかの場所」を「ナイト」に変えます。
ビームを表示します。
これでクローンされたビームはナイトの場所にある事になります。
あとはビームを動かして端に行ったら消すという部分を作ります。
ビームは上に向かって進んでいくので「Y座標を10ずつ変える」事にします。
そして端に行ったら消すようにしたいので端に触れたらクローンを削除します。
このようなプログラムになります。
「Y座標を10ずつ変える」の数値を大きくすればビームの動くスピードは早くなります。小さくするとスピードは遅くなります。
ビームは端に行かないと消えるようになっていません。敵に触れて敵を倒した時もそのまま進んでいきます。
敵を倒した時にビームが消えるようにするには次のようにすればいいでしょう。
上の図では「ギャオス」に触れた時だけ消える条件にしていますが、「ガバン」も同じようにすれば可能です。
また、同じやり方で敵の武器に触れた時に消す事も出来ます。。
4.ギャオスの動き
敵キャラのギャオスの動きを作っています。ギャオスの動きを書いてみましょう。
ギャオスの動き
2)表示されれば下に進んでいく。
3)ナイトの攻撃「ビーム」に触れたら消える。変数「得点」を「1」増やす。上の場所に戻る。
4)ナイトに触れたら変数「ライフ」を「3」減らす。消える。上の場所に戻る。
5)ナイトの防御「バリア」に触れたら消える。上の場所に戻る。
6)「端」に触れたら消える。上の場所に戻る。
このような処理になります。これを1つずつプログラミングしていきます。
ギャオスを画面への表示する
ギャオスの表示
乱数が不明な場合は、「乱数について」をご覧ください。
このようなプログラムになります。
ギャオスを下降させる
ギャオスを表示したら少しずつ下降するようにしていきます。
「Y座標を-5ずつ変える」をずっと繰り返すようにします。
「-5」ではなく「-10」にするとギャオスが下に行くスピードが早くなります。
ナイトのビームに触れた場合
ナイトのビームに触れた場合の処理を行っていきます。
ポイント
これを「ずっと」の中に入れるのですが、このままだと表示されないので「ずっと」の最初に「ステージに表示する」を入れます。
ギャオスが上に戻った時にすぐに下に行くのではなく少ししてから下に行くようにしたいので「0.1~0.3」の乱数秒まつを入れました。
この「〇秒まつ」を元の場所に戻るの上に入れるとギャオスが消えてすぐに表示されたり少したってから表示されたりするようになります。
このようなプログラムになります。
5.ギャオスの攻撃「ばくだん」の動き
ギャオスの攻撃「ばくだん」の動きを作っていきます。
ギャオスは、下に行く時の攻撃として「ばくだん」を発射します。
「ばくだん」はクローンをして下に向かってすすみます。
ナイトの「ビーム」のようにスペースキーを押した時に発射されるのではなく自動的に攻撃をします。
ばくだんの動き
このようなプログラムになります。
クローンされた後の動きを作っていきます。
ばくだんがクローンされた時は、ギャオスのところに行き下に進むようにしていきます。
ゲームを面白くするために得点が大きい場合は早くしてみます。
ばくだんがナイトに触れた時は、変数「ライフ」を「1」減らしてばくだんを削除します。
ばくだんはナイトに触れた時以外は、「端」「ビーム」「バリア」に触れた時にも削除するようにします。
このようなプログラムになります。
スピードが早くなるのは特典が60以上になった時にしました。
6.ガバンの動き
2体目の敵キャラであるガバンの動きは「ギャオス」と同じ動きをします。
ここでは説明しませんので自分で考えて作ってみましょう。
7.ガバンの攻撃「カッター」の動き
ガバンの攻撃「カッター」です。これもギャオスの攻撃「ばくだん」と同じ動きになります。
カッターは回転しながら進むのでその部分はプログラミングをしないといけません。
動きメニューに「15度まわす」というパーツがあるのでこのパーツをカッターを回転させるようにしましょう。
8.ナイトの防御の「バリア」の動き
ナイトを敵から守るための「バリア」を作っていきます。バリアの動きをまとめてみます。
バリアの動き
バリアを非表示にする
ゲームが始まった時には、バリアは表示されていませんので見えないように設定します。
「V」キーが押された時の動き
「V」キーが押された時にバリアを表示するようにします。
イベントメニューに「スペースキー」が押された時があるので使います。
「スペース」を「V」に変更します。
続いてバリアを表示するのは変数「バリア」が「10」の時だけです。
変数「バリア」が「10」ならバリアを表示してみましょう。
バリアを表示する場所は、ナイトの少し上にしたいので調べるメニューから「ステージの背景#」を持ってます。
ナイトのX座標、ナイトのY座標+50 をバリアの座標に入れましょう。
バリアは、5秒間表示したいので以下のように書きます。
「5秒待つ」にしないで「1秒を待つ」を5回繰り返しているのは、ナイトが動いた場合にバリアも動かしたいからです。
「0.5秒まつ」を10回繰り返すにしたほうがナイトが動いてもスムーズにバリアが動いていきます。
バリアを表示した後に変数「バリア」を「0」にしてバリアを隠します。
バリアがモンスターや敵の攻撃に触れた場合の処理は、モンスターや敵の攻撃に書きます。
変数「バリア」を増やす
バリアの機能は、10秒間に1回だけ使える機能です。変数「バリア」を1秒に1増やす処理を行います。
このようなプログラムになります。
スクラッチのシューティングゲームを作り方まとめ
スクラッチのシューティングゲームを作り方いかがだったでしょうか?
難しかったでしょうか?
基本的な方針としては、極力シンプルなゲームの作り方を説明してそれが出来れば後は自分でアレンジを考えて改造してもらおうと考えています。
やはり手順通りに作るだけでは面白くないし、アレンジしてこそゲームプログラミングの面白さがわかるというものです。
少しアレンジのアイデアを書いてみます。
アレンジのアイデア
少し考えただけでこれだけ浮かびます。まだまだ、たくさんアイデアはあるので考えて面白いゲームを作ってみましょう。
ボーナスレクチャー
ここまで見て頂いた人に改造アイデアを1つプレゼントします。
興味がある人は作ってみて下さい。
ラスボスを登場させます。
ラスボスの動きを次のように決めます。
ラスボスの動き
ラスボスの動き
ラスボスという名前からすると難しそうですが、実は動かないので簡単だったりします。
ラスボスの動き
〇「はかい光線のクローンを作る」。
〇「2秒待つ」。
〇変数「ラスボス」が「1」より小さい時、「やられた」と1秒言ってすべてを停止します。
はかい光線の動き
「ばくだん」「カッター」とぼぼ同じ動きになります。
1点違う点があります。
はかい光線は、下に進むのではなく135~-135度の間に発射するので向きを変えます。
このようなプログラムになります。
続いてクローンされた後の動きを作ります。
クローン後の動き
〇ステージに表示する
〇「3」歩動かす(下に進むのではないためY座標を変えるではありません)
〇「端」に触れれば、クローンを削除する
このようなプログラムになります。
説明をしていない部分
ここまでの説明で「ラスボス」への攻撃、「ラスボス」から攻撃に関してはあえて説明をしていません。
ここまでプログラムを作ってきたので自分でどのようにすればいいかを考えてみましょう。
説明通りにだけ作っていてもプログラムを作れるようになりません。