xna+c#でぷよぷよを作っています。
クラスが大まかに
ゲーム進行制御クラス(progress)
フィールドクラス(field)
となっていて、
ゲーム進行制御クラスでは状態遷移により、次のぷよ出現、通常処理(操作ができる)、落下処理、消す前の処理(連鎖判定)、消す処理、となっています。
フィールドクラスは、6 * 13個の2次元配列を作っていて、ぷよが着地したらそこにデータを格納し、描画するようにしています。
また描画は、ゲーム進行制御クラスの上にフィールドクラスを描画するようにしています。
そこで、ゲーム進行制御クラスで通常処理のでは、現在のぷよの座標を下キーが押されていたら、少しずつ落としていって、
座標を整数に切り上げて、着地時に何もなかったら、フィールドクラスの配列に入れておいています。
それで、配列ごとの移動?ではなくピクセル単位のなめらかな移動を実現しています。
しかし、落下処理では、for文で、フィールドクラスの現在調べている座標にぷよがあり、その下が空白ならば2次元配列の情報を入れ替えることにより落下処理を実現しています。
その方法だともちろん、配列だけの移動なので、動きがカクカクになってしまいます。
この落下処理も、動きを滑らかにする方法はないのでしょうか…。
コードは、多すぎるし、言葉で説明したほうが良いと思ったので載せていません。
もちろん、ここのコードを見せてほしい等あれば言って下さい。すぐに載せます…。
ぷよぷよの連鎖やちぎり状態の落下処理について
Re: ぷよぷよの連鎖やちぎり状態の落下処理について
すいません。自己解決いたしました。
落下時、もとあったフィールドを一時的に消し、新たにぷよを1つのオブジェクトとして発生させ、そのぷよを壁か他のぷよにつくまで落として
ついたら、ぷよを消し、フィールドに情報を書き込むことで実現いたしました。
落下時、もとあったフィールドを一時的に消し、新たにぷよを1つのオブジェクトとして発生させ、そのぷよを壁か他のぷよにつくまで落として
ついたら、ぷよを消し、フィールドに情報を書き込むことで実現いたしました。