この記事のポイント
ボスと戦えるようにします。
はじめに ボスと戦いたい!
シューティングゲームの醍醐味の1つは超強いボスキャラと戦いですよね。通常の敵キャラよりライフポイントが大きくて、攻撃も強い。
今回はそんなボスキャラとの闘いを行えるようなプログラミングをしていきます。
参考記事
参考となる記事は以下です。
前回記事
前回は、ボスキャラが登場するところまでをプログラミングしました。今回の記事は前回記事のプログラムを流用しますので、前回記事を参照してください。
シューティングゲームを作ろうシリーズ 第1回
シューティングゲームを作ろうシリーズを最初から始めたい方は以下記事を参照してください。
スクラッチの始め方
スクラッチをイチから始めたい方は以下記事を参照してください。
完成作品
完成作品は以下のようになります。緑色の旗:実行ボタンを押して遊んでみてください。
操作方法
- 矢印キーでろぼてくを操作する
- スペースキーで弾を発射
ルール
- 敵キャラを10体倒すとボスが登場します。
- ボスキャラを倒すとゲームクリアです。
完成プログラム
新規追加スプライト
<ボス弾>
ボスが発射する攻撃の弾です。こちらが撃つ弾より大きく強力そうなものを用意しましょう。弾の発射の方法はろぼてくの弾の発射と同じ考え方で作れます。
修正スプライト
<ボスキャラ>
ボスキャラを上下に動かす、ボスキャラの位置を取得する、ボスのライフを管理するプログラムを追加します。
<ろぼてく>
ろぼてくがボス弾に触れたらライフが減るように修正します。
スクラッチプロジェクト
スクラッチプロジェクトは以下です。プログラムや画像の素材は自由に使用してもらってOKです。
作りたいモノ・コト(仕様)を考える
今回の作りたいモノ・コトは以下のとおりです。これをプログラムできればゴールです。
- ボスキャラは上下にランダムに動く。
- ボスキャラはボス弾を発射する。
- 発射するときは音が鳴る。
- ボスキャラはろぼてくの弾が当たると点滅する。
- ボスキャラはろぼてくの弾が当たるとライフポイントが減る。
事前準備
ボス弾のスプライトを用意
今回用意するスプライトは「ボス弾」という名前にしましょう。スクラッチにもともと用意されている「Sun」を使います。オリジナルの弾を用意してもらって構いません。
プログラミング
ボスキャラを上下にランダムに動かす
簡単にろぼてくの弾に当たらないように、ボスキャラを上下に動かすようにします。さらに動きはランダムにしたいと思います。
失敗例 ボスが画面からはみ出してしまう
まずは、失敗例のプログラミングをしてみましょう。
前回のボスが登場するスクリプトに青枠のスクリプトを追加しましょう。このスクリプトの考え方は次のようになります。
- 変数:ボス移動量をランダムに決める。
- ボス移動量分×5分 y方向に移動させる。
これで一旦動かしてみましょう。するとある程度時間がたつと、ボスキャラが画面の外側まで行ってしまいます。これではボスと戦うことができませんね。
改善 ボスの移動範囲をせばめる
この問題を解決するためには、ボスの移動範囲をせばめてあげる=制限してあげる必要があります。
次のように動かすようにプログラムを組んでみましょう。
- ボスのy位置が80より大きければ、それ以上「上」にボスがいかないようにする。→「ボス移動量」を-5に変更する。
- ボスのy位置が-80より小さければ、それ以上「下」にボスがいかないようにする。→「ボス移動量」を5に変更する。
ランダムで決めていたいボスの移動量を、ボスが上に行き過ぎると下方向に再設定してくれ、ボスが下に行き過ぎると上方向に再設定してくれるようになるため、ボスがドンドン画面の上下端に行くことを防いでくれます。
ボスキャラが弾を発射する
ボスキャラは強力な攻撃ができるようにするために、ボスキャラが弾を発射できるようにします。弾の発射の仕方は、ろぼてくが弾を発射する方法と同じ考え方でできますので、以下記事を参考にしてください。
まずボスキャラの位置を取得するようにします。以下スクリプトをボスキャラスプライトに追加してください。
次にボス弾スプライトのスクリプトを作ります。以下のようにスクリプトを作ってください。ボス弾スプライトの大きさは「35」くらいにしておきます。
ボス弾の出現頻度やスピード、大きさは好きなように調整してください。
これで難易度が大きく変わります。
ボス弾が発射されたら、音が鳴るようにします。今回は、スクラッチにもともと用意されている「Space Noise」を使います。
ここで一旦プログラムを動かしてみます。ボスキャラからボス弾が発射されますね。
ろぼてくサイズの攻撃が来て避けるのが大変ですね・・・。
ボスキャラがろぼてくの弾に当たると点滅する
ろぼてくの攻撃がボスキャラに当たったかどうかを確認できるように、ろぼてくの弾がボスキャラに当たったら、ボスキャラを点滅させるようにします。
スプライトを点滅させるためには、スプライトに次のような動きを繰り返してあげればよいです。
- 弾に触れたら、
- 以下を繰り返す。
- スプライトを隠して、少し待つ。
- スプライトを表示させて、少し待つ。
ここで一旦プログラムの動作を確認します。弾がボスキャラに当たるとボスキャラが点滅することがわかると思います。
ボスキャラのライフを減らす
ろぼてくの弾をボスキャラに当てると、ボスキャラのライフポイントが減るようにします。
「ボスキャラライフ」という変数を用意して、弾に触れるとライフを1ずつ減るようにします。最初のボスキャラのライフは10にします。先ほどのボスキャラを点滅させるスクリプトに赤枠のブロックを追加します。
ボスキャラに弾が当たったら弾を消すようにするために「弾削除」のメッセージも送るようにします。
ゲームクリア条件をつくる ボスキャラを倒す
前回の記事の修正で、スコアが20より大きくなったらゲームクリアになるように修正しました。ボスキャラが表れるのはスコアが10になってからなので、ボスキャラを倒してスコアが20より大きくなるようにすれば、ボスキャラを倒してゲームクリアということになります。
ボスキャラのライフが0になったら以下のように動くようにします。
- ボスキャラを隠して、
- スコアを20増やす
ろぼてくのライフを減らす
ろぼてくがボスキャラのボス弾にふれたらライフを減るようにします。
これで今回のプログラミングは完了です!お疲れ様でした!
動作確認
さいごに動作確認をします。ボスキャラに弾を10回当てると、ボスキャラが消えてゲームクリアとなります。これでついにシューティングゲームが一通り完成しました。
さいごに
今回の記事で、ボスキャラと戦って、ボスを倒してゲームクリアするところまでプログラミングをしました。これでシューティングゲームの大枠は完成しましたので、いろいろな値を調整して難易度を変えてみてオリジナル性を出して楽しんでみてください!
コメント