0_0_59

 obake   specification   version 

58A をベースに、タイルの追加処理を仕上げる予定。

QF_Dororon 関数は動作も安定的。

OGrid_MoveDown 関数も機能していることを確認。

今後は ev.DoronBitXY[m] 1次元配列に格納されている ID を適切に処理する必要性。

オブジェクト rebirth

お化けを新規に発生させる前にエフェクトが必要なのだけど、そのエフェクトなどを制御するオブジェクトが rebirth 、このオブジェクト・インスタンスに一定時間経過後発生するイベント/アクションを定義中。

rebirth. の Instance Variable として rebirth.DoronBitID = m; を持たせた。m は column number ✕ row number の計算結果。つまり一次元配列における位置を示す。DoronBitXY[m] に格納されている instance ID を変数から簡単に呼び出す。再計算を省くための処置でもある。

( 保存された Instance ID は true の代わりに代入してあるだけなので、ID としては現在活用されていない。デバッグには使えるかも。 )

配列要素の位置を ev.DoronBitID[rebirth.DoronBitID] のように利用することで簡単に求まる。

rebirth. のインスタンス変数定義

z = instance_create(d,e, rebirth);
with(z)
{
  depth        = GameDepth;
  alarm[0]     = (room_speed >> 1);
  vspeed       = 0;
  TX           = k;
  TY           = i;
  TiD          = h; // color -> 1,2,4,8,16,32,64 (POW2)
  sprite_index = Set_Animation_Stocker(TiD);
  DoronBitID   = m;
};

rebirth. の Instance Variables の基本構成は Tile と同じ。ただし完全な互換性は無く、引継ぎのために必要な情報だけを持たせてある。( vspeed は要らないかも )

rebirth.Alarm 0 の処理

Init_CreateObake 関数を追加。ゲームボード上から消した分空きスペースができたが、そこへ新しくお化けを補充するに当たって、お化けを新規作成する従来処理をいよいよ関数化した。

もっとも、これはゲームボードへ初期配置するための専用処理なので、他からの呼び出しには適切に対応できないかも…………だったが、少し手を加えれば簡単に他処理からの呼び出しへ対応可能だったため、これはラッキー。

その後

かなりあっさり実装完了。あまりにもあっけない。もっと苦労するかと思ったが、想定外のバグも出ず循環処理がキチンと実行されている。

ゲームエンジンの動作テスト

想定内のバグは出ているため、ここからブラッシュアップしていく必要はある。しかし一応これで落ち物パズルのオリジナル・ゲームエンジンとして、最初に作る仕様を決めた時に構想した通りの全機能は実装出来た。GM:S を使って初めて作るゲームだったので当初から懸念は色々あったが、こうして実際に動いているのを見ることができて、今ちょっと感動している。

そしてこれで作品として発表する目処も立った。( 来年か )

追加

宣言 ev.BusteredObake[f] = 0;

今後オブジェクトを破壊した時に、どんな種類のお化けを破壊したかを記録する必要がある。処理追加と、保存用の変数が必要。

0-fill 処理は ST_CheckPos 関数でタイミングずらして他配列変数と共に行う。前述したお化けの種類ごとに分類してカウントするための配列。

まだ具体的な処理には取り掛かれないため、しばらく宣言だけで実際の利用は無し。メモ




次へ

前へ