フリゲ展夏に向け、SFMLで落ち物パズルを制作中です。
引き続き、パズルシステムを作っています。
パズルシステムの中でも重要な、「連鎖」を実装しました。
連鎖の対象は、同じ種類のスイカが上下左右に3つ以上連続している箇所(連接スイカ)です。
重りをスイカの上に落とすことで、一番上の連接スイカが割れます。
1組の連接スイカが割れて、空いたスペースに重りが落ちて、次の連接スイカが割れる、という流れです。
連鎖を起こすと、対戦相手のパズル領域に、妨害するオブジェクトが送られます。
スイカや妨害オブジェクトが天井まで積もると、ダメージを受ける代わりに、妨害オブジェクトは全て消えます。
妨害オブジェクトが増えて、連鎖を組むのが難しくなったら、あえて自分から天井まで積むのも手かもしれません。
---
ばらまかれたスイカの落下場所はランダムなので、そのままでは連鎖にならない場合も多いです。
そこで、「シフト」と呼んでいる操作が重要になってきます。
選択した列を、一段下にずらす操作です。
列の一番下にあったスイカは、ランダムな列に降ります。
スクリーンショットにある黄色い枠が、選択している列です。
高く積もった列を低くしたり。
スイカの位置をずらして、連鎖が続く配置に変えたり。
連鎖を組む上で、欠かせない操作です。