Master.typeX 2021/05/18 21:23

CF2.5講座第10回:簡単なシューティングゲームを組んでみよう!(前編)

どうも、Master.typeXです。
今回は久しぶりにCF2.5講座です。

今回は一気にステップアップして
単純なシューティングゲームを
組んでみよう!

・・・と、言ってみたものの
処理が全然初心者向けじゃねぇ・・・

今回の講座プログラム(要CF2.5本体)

CF25_kouza_v1000.zip (149.88kB)

ダウンロード

今回の完成動作

ゲームオーバーは入れてませんと言うか
完全に入れ忘れてます。スマソ。

と、とりあえず一つ一つ解説。

プレイヤーの生成

プレイヤー生成イベントは
「初回」「復活」「プレイヤー生成イベント」の
3つのグループで構成されています。

「初回」は文字通りフレームが開始された時。
ここで「プレイヤー生成」という高速ループを
3回回しております。

なぜ3回なのかと言うと
以前の講座で一度にいっぺんに
オブジェクトを生成すると
固定値取得がうまく行かなかったりするのと
それによる同期がうまく取れなくなるのを防ぐため。
そして、わかりやすくするためである。
ぶっちゃけループは1回でもよかったりするが
3回分回したほうがわかりやすいと思ったので。

で、プレイヤーは
「当たり判定」「アイテム判定」「自機外側」
これら3つのパーツで構成されてます。

で、当たり判定がやけに小さいが
シューティングゲームの自機当たり判定は
めちゃくちゃ小さいのが当たり前
・・・と
誰かが言っていた気がするのでこのサイズ。
ちなみにGWは横2x縦1ドットです。ちっさ。

アイテム判定は今回使ってませんが
後でアイテム追加したいとか考えた時に。

自機外側はホントガワだけなので
好きなように変えてください。

あ、本番のときは
「当たり判定」と「アイテム判定」の
開始時に表示のチェックを外すのをお忘れなく。

「復活」は敵や敵弾に当たった時の処理で
どちらかに「当たり判定」が当たった時
生成ポイントの変数
「V_生成時間」を90にするようになっており
これをカウントダウンし、0になったら
「初回」同様「プレイヤー生成」を3回回す
というものです。

「プレイヤー生成イベント」は
高速ループ「プレイヤー生成」を行うところです。

プレイヤー操作

移動は第二回講座で行った高速ループ式移動を採用。
当たり判定をより確実にするためです。
組み方は第二回講座及び今回のフレームを参照。

弾の発射は
スペースキーかボタン1を押している時に
「V_弾発射間隔」が0になった時に弾を生成する
高速ループ「弾発射」を5回回しています。
弾発射はそれぞれ別の位置、方向から弾を
発射するため5回回しています。
ちなみに弾の動作は「バウンスボール」です。
方向は上方向で。
間違っても「オブジェクトを発射」を使わないように。
どうやっても止まらんぞ。
※こちらも過去回参照

で、弾発射の間隔は先程の5回生成後に
「V_弾発射間隔」を5に変更してます。
そしてスペースキーまたは、ボタン1を押している時
「V_弾発射間隔」が0より上なら
「V_弾発射間隔」を1引くという処理になってます。

無敵時間は文字通り
敵や弾に当たっても大丈夫な時間で
0より上なら1引いてく処理です。
数式エディタのmodと
オブジェクトの表示、非表示を駆使すれば
疑似点滅なんてことも可能ですが今回はやってません。
めんどくさいもん。

画面外移動制御は
プレイヤーが画面の外に出ないように
制限をかける処理です。
今回のプレイエリアは横320x縦448くらいです。
これより上回ったり下回ったりしたら
ちょっと回りくどいが
横は320(フレームサイズの半分)+160(右移動時。左移動時は-になる。)
縦は240(同上)+224(下移動時。上移動時は-になる。)
という具合にプレイヤー位置を変更してやろう。

追従処理は本体である「当たり判定」に
「アイテム判定」「自機外側」を追従させる処理です。
不要っちゃ不要だがそれぞれの変数Aが
「当たり判定」の「固定値」と同じなら
座標を「当たり判定」と同じところにするというもの。
画面外移動制御より後ろにしないと
ちょっと見た目がよろしくないので。
これは実際にイベントグループを前後させるとわかる。


とまあ、今回はここまで。
随分とまあ、長く書いたもんだ。

次回は敵の生成と動作処理を解説していきまっする。

ということでまた次回!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索