swap 動作に関する仕様

 obake   specification   swap 

タイルの入れ替えについて

タイルを入れ替えは一秒間の間に完了する。

実際は Flick 系と 2Touch 系で少し処理が違う、先に 2Touch 系で実装を試す

  1. 入れ替え動作
  2. 目的地へ移動
  3. 目的地に着いたらそこで一度周囲のタイルをチェック
  4. 3-Match があったら入れ替え処理を行う

この4.の時、すぐにタイルを入れ替えせず、ペアのタイルを一時的に保留扱いとするべきか

一秒間の半分で移動は終わるので、のこり半分の時間は入れ替えを実施する前のタイムウェイト扱いとする。 この時ペアでタイムウェイト扱いなら二つとも一時保留のための特殊なタイプに変更しておく必要がある。 さらに、その特殊なタイプのタイルは 3-Match ソルバーの判定にも含めないように

さらにさらに、同タイプと判定された周辺タイルも一時的に特殊なタイプにする、だからこれらも保留扱いとなる。 この保留扱いのタイプはすでに入れ替え処理に移行しているため、後から同タイプのタイルを持ってきても 3-Match とはならないように処理する必要がある。

ソルバーは最初に MG へアクセスしてオブジェクトIDを取得しているので、3-Match 判定を得たオブジェクトは MG から Object-ID を削除する方が良さそう

1.3-Match で一致した Object-ID は MG のグリッドからはデータを削除して Noone 化する TS_CK_NotNoone(id1, id2);を追加、この関数で MG から取得した Object-ID が noone でないかをチェックする




次へ

前へ