移動する動きなどは特に考えず、真下にブロックが
落ちる動きをしたいのですが、稀に上手く動かないことがあるみたいです。
パネルは自分の下が0なら落ちるようにしたいです。(縦方向のみ)
以下のようなソースで試してみて、
ランダムな場所を消して試してるのですが、
まれにおかしい値が入っております。
原因が分かる方おりませんでしょうか。
#define TBL_WIDTH 5
#define TBL_HEIGHT 5
int Tbl[TBL_HEIGHT][TBL_WIDTH] = {
{ 1,2,2,3,4 },
{ 1,5,2,3,4 },
{ 1,2,5,3,4 },
{ 1,3,2,3,4 },
{ 1,2,2,3,4 },
}
// 落ちる処理
for( int y=TBL_HEIGHT-2; y>=0; y-- ){
for( int x=0; x<TBL_WIDTH; x++ ){
if( this->Tbl[y+1][x].Pram == 0 ){
int temp = this->Tbl[y][x].Pram;
this->Tbl[y+1][x].Pram = temp;
this->Tbl[y][x].Pram = 0;
}
}
}