0_0_51

 obake   specification   version 

_50 が stable になったので _50 に新機能を付けていく

( _50 は修正後の動作確認で Android(YYC) と Windows(YYC) および HTML5 で正常に動作することを確認 )
  • ev.Phy_Start フラッグ(ブーリアン)を追加

  • ev.Phy_Falling フラッグを追加

  • ev.TryCombTimer に制限時間がセットされた時、Phy_Start を True とする。

  • ev.TryCombTimer が 0 になった時、Phy_Start が True の場合自由落下処理を開始

  • ( QF_ComboChallenge ) → Phy_Control(); 関数を追加( if Phy_Start == true then )

( 追加されたグリッド )
OG               = ds_grid_create(AW,AH);
  • Init_Boards(); 以下にストッカー用の初期化関数を追加

  • Init_ObakeStocker(); でストッカー用のオブジェクト配置

  • Stocker スプライト群の追加

  • ODY[AH-1] として配列を追加、TDY の obake Stocker 用

QF_ComboChallenge(); で TryCombTimer は処理されている。

ev.TryCombTimer の初期化は TS_CK_3MatchIsTrue(); で、TS_CK_3Match();/ TS_Ck_Chain(); 二つの関数が 3-Match を発見した時に最後の仕上げ処理として TS_CK_3MatchIsTrue(); を一回呼び出す。

  • ( TS_CK_3MatchIsTrue(); )
Phy_Start    = true;
TryCombTimer = (room_speed+(room_speed>>2));
ComboCounter++;

instance_create(1000,200,combo);
    if instance_exists(hint){
        hint.image_alpha = 0.5;
        hint.image_index = 1;
    };
( ev.TryCombTimer==0 の時、Phy_Start==true の場合 Phy_Falling = true となる )
if (ev.TryCombTimer==0){
  if (Phy_Start==true){
      Phy_Falling=true;
  };
};
  • ( 実際の QF_ComboChallenge(); の処理は以下 )
if (TryCombTimer>0){
   TryCombTimer--;
       if (TryCombTimer==0){
               if (ComboCounter > ComboRecord){
                   ComboRecord = ComboCounter;
               };
           ComboCounter = 0;
           Phy_Falling  = true;
       };
};
( Phy_Start については上記処理の時点で False にしても良いが、とりあえず先のことだからまだFalse処理は入れてない )

Phy_Falling が True になった時点でまだ操作系に残っているキューがあるときは、キューに残った処理を実行。 キューに処理が残っている時は Phy_Falling の状態を見て新規キューの追加。

あたらしく 3-Match 判定が出た場合、そこからまた TryCombTimer の制限時間が入るため、Phy_Falling の処理継続。新規キューの追加。

フラグの役割を定義

全体の操作を禁止するものではなく、ゲームボード上のタイルから一部のタイルについて選択およびスワップをできなくするためのフラグ。 また、追加のキューがあった場合キューを入れて、タイルの落ちている間=移動中はボード回転など操作を無効化する。

  • Phy_Start が True の場合 → ボード上に空きが生まれたので空きを埋めるためのキューを入れる

  • Phy_Falling が True の場合 → 落ちている最中だからボード回転系の命令は無効

QF_ComboChallenge(); → QF_Movement(); この順番なので、かならず Phy_Start は次回 Step から真偽判定される。




次へ

前へ