今日はブロックがそろった時のお話です。
↑の画像の一番上にグレーっぽいところが消滅しているところです。
最初は、動いているブロックを中心に4つ以上同じ色なら消えるというロジックを考えていたのですが、かなりロジックが複雑になってしまったので、
その後、全箇所判定しようと決めて処理したところ特に重くもなくスムーズだったのでそっちを採用。※動いているブロックなどおかまいなしに全部の地点を中心に4つ以上並んでいたらそれを配列に入れる。そして全部終わったら配列にある物を消滅させる(ちなみに各ブロックの名称はx,yの値を入れてブロック名から地点がわかるようにしてます)
で、消えるときはアニメーションで1秒後に色が透明になるようになってます。(その後オブジェクト削除しますが)
これにて完成!!
・・・
・・・
・・・
個人的にも一番気になるのはやっぱり消えたときにくっついていたブロックが空中にある時にしたにおちないこと。(画像で言うと一番上にある「赤」のブロックは落ちません)
実現したかったのですが、ブロックを単体で扱っていたことから、消えたブロックが単体なのか?横にくっついているものがあるのか?という管理や扱いが大変だったので今回はパスしました。
イメージ的には、
①消滅後に空中にあるブロックを探す。
②上記①で見つかったブロックは単体なのか、くっつきブロックなのか確認(くっつきブロックを配列で管理?)
③単体なら下まで落とす。
↑これが実現できれば、消滅は全位置確認するロジックなのでそのまま使用できます。
この状態でも意外とゲーム的にはしっかりと遊べるのでまぁいいかなという感じでパスしました。
ということでこれでパズルゲームも終了!!これはなかなかよくできたゲームなんじゃないかなと個人的には思ってます。
↑の課題(ブロックの逆方向を落とす)を考慮すると、
テトリスなんかは揃ったら全部落とせばいいだけだから簡単で、
逆にぷよぷよとかは大変だなと思います。
またぷよぷよは縦横以外の判定が必要になるのでちょっと大変かなという気もします。
初心者の方でこのようなゲームに挑戦するのであればテトリスあたりがいいのかなと個人的には思いました