八方向移動
-
縦スクロールシューティング 10
八方向移動は完成。今度はこれに接触判定(コリジョン)を付けます。しかしこれは先に高速ループのレッスンで実際に似たような処理を経験してるはずなので、まだレッスンをやってない方は先にそっちを済ませてからこっちの記事を読んでください。→★
コリジョンはオブジェクトグループを「コントロール」とは別に分けて処理してあります。
-
縦スクロールシューティング09
キー押しの検出は終わり次にイベントグループ「movement」に処理が移ります。「movement」でやっているのは移動量の計算です。
-
縦スクロールシューティング08
オリジナルと一番異なる部分です。オリジナルと異なり最初の「常に実行」で行っているのはデテクタ用スプライトの座標移動ではなく変数xmove、ymove=つまりXY移動量をゼロにリセットすること、そしてフラグ0の有効化です。一方デテクタに対して表示用スプライト座標はここでデテクタのXY座標位置に移動させています。
-
縦スクロールシューティング07
オリジナルに対して改造版サンプルはなるべく小まめにイベントグループを活用して作ってあります。イベントグループを活用するのは現時点ではそれほど意味はありませんが、将来的に一つのゲームを作る場合、このイベントグループの活用が重要な意味を帯びてくる場合があります。イベントグループは用が無いときは「イベントグループを非アクティブにする」という命令を使って内部的に非アクティブにしておきます。こうしておけば特定の機能を意図的にオンオフしたりするのが楽になります。
-
縦スクロールシューティング06
まずいきなりシューティング本体から作らず、先に8方向動作を別ファイルで作っておきましょう。8方向移動の自作はベースとしてdrnebulaの「8dir_spacemovement_widget_rev2」というサンプルを使うとあらかじめ決めてあります。このサンプルを自作8方向のベースに選んだのは楽をしようというより、解説的な意味で色々都合が良かったからです。オリジナルは内容や動作定義の仕方がとてもシンプル、そしてこのシンプルさにはまだ多く手を入れる余地があります。今回オリジナルのサンプルで使われている考え方や作り方を継承しつつ、ゲーム仕様に沿った内容に新たに作り直すことを目的としています。