swap 動作に関する仕様
タイルの入れ替えについて
タイルを入れ替えは一秒間の間に完了する。
実際は Flick 系と 2Touch 系で少し処理が違う、先に 2Touch 系で実装を試す
- 入れ替え動作
- 目的地へ移動
- 目的地に着いたらそこで一度周囲のタイルをチェック
- 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 でないかをチェックする
次へ
前へ