0_0_64
0_0_63 で古いバグが修正された。動作チェックをしながら小さな新機能を実装。
0_0_62 で未実装になっている機能を中心に実装を進める。
バグ
確認されている大きなバグは、Physics 動作の後、3-Match 判定処理に不具合。
落下対象のオブジェクトしか連鎖判定に含まれていないバグ。
UI
- .topbar — 実装完了
- .point — 完了 → gcolour と重複中
- .wincomb — 完了
- .gtimer — 完了
- .gmove — 完了
- .gcolour — 途中まで : BusteredObake
- .gfunc — 実装中:Grid Functionsをそれぞれ何回使ったか
- .gscore — ● 保留
- .gmission — ● 保留
.point は .gcolour と機能が被っている。今後扱いをどうするか考える。
.gfunc は内部でスコアに絡んだ値として利用されるが、プレイヤー向けには情報を出さないかも。暫定的に .fb
の draw Event で各ボタン毎に回数を表示させてある。
消した数=新しく補充されたお化けの数なので、ジェネレータで作成されるお化けの数を決めて、規定数お化けを消したらミッションクリアとか?
Save Load 関連を整理
UI も一応最低限の体裁は付いたので、ステージ設計の前提と成る内蔵のレベルエディット機能と、配列の保存機能に関するコード部分を見直す。
この辺りはプレイヤーには見せない部分なのでコードもハードコーディングが多く、コードも機能実装も雑。
0_0_64A 以降、扱う情報を多くしデータ保存項目も追加。一部キーボード操作もマウス操作主体へ統一し、必要な機能には専用ボタンを設置。
.fb
Draw Event に手を入れてシェーダを利用したカスタム描画を実装。FB_DrawFnc();
関数を作成。
条件に応じてボタンの描画を更新するが、タイミング制御が複雑/描画内容更新変更が頻繁になるため、効果が少し煩わしく感じた。なにか工夫が必要かも。
新規お化けの作り方まとめ
新規「お化け」はゲームエンジンからユーザ定義関数Init_CreateObake
を利用して作成される。
Init_CreateObake(id, vspeed, y pos, TX, TY, RDT, tile.TiD );
関数へ与える引数多め。この関数は主に.ev
と.rebirth
で利用されるのみ。 .ev オブジェクトでは Create Event でしか利用されていない。.rebirth では Alarm 0 で利用される。
レベルエディタとして内蔵してある.edit
ではゲームエンジン相当の機能は無いので、インスタンスに詳細な値を変数として持たせる意味が無く、特にこの部分はハードコーディングで変数設定も簡略化されている。
レベルエディタでは新規お化けの作成はマウスクリックしてグリッド上へ配置した場合と、ロード機能からマップをロードした場合、ふたつの系統がある。ゲームエンジンにもマップデータのロード機能は実装されている。
マップデータのロード機能は「レベルエディタ用」と「ゲームエンジン用」でそれぞれ専用関数が用意された。前述の通り、レベルエディタには変数設定は要らないが、ゲームエンジンは詳細な変数設定が必要なので、それぞれ関数を分ける手間が必要となった。
- ゲームエンジン側 → GE_LoadGrid_EX(); ユーザ定義関数
- レベルエディタ側 → GE_LoadGrid(); ユーザ定義関数
GE_LoadGrid_EX();
は本来ハードコーディングせずInit_CreateObake
関数を利用して処理を完全共通化させたかったが、レグレッションテストに時間コストかかるため現在はハードコーディングのままとなっている。この部分は 0_0_64 で共通化させる予定。
GE_LoadGrid_EX();
と Init_CreateObake
関数は変数の設定について同じ事をやっている。
Init_CreateObake
に変更や追加をした場合は、GE_LoadGrid_EX();
関数側にも変更を反映させる必要がある点に注意。
次へ
前へ