プロジェクトのテトリスクローンを作成しています。私はほとんど完了しましたが、私の明確な線のクラスには、私が振ることができないバグがあります。スプライトを描画する 10*20 グリッドを作成しました。床に線を引くと問題なく動作しますが、その上では線が削除され、その下にあるものもすべて下に移動します。これは私のクリアラインクラスのコードです:
public static void ClearLines()
{
for (int CountY = Game1.LandedBlocks.GetLength(1) - 1; CountY >= 0; CountY--)
{
bool clearLine = true;
for (int CountX = 0; CountX < Game1.LandedBlocks.GetLength(0); CountX++)
{
clearLine &= Game1.LandedBlocks[CountX, CountY] != -1;
}
if (clearLine)
{
for (int CountX = 0; CountX < Game1.LandedBlocks.GetLength(0); CountX++)
{
Game1.LandedBlocks[CountX, CountY] = -1;
}
for (int y = Game1.LandedBlocks.GetLength(1) - 1; y > 0; y--)
{
for (int CountX = 0; CountX < Game1.LandedBlocks.GetLength(0); CountX++)
{
Game1.LandedBlocks[CountX, y] = Game1.LandedBlocks[CountX, y - 1];
}
}
CountY++;
Game1.rows++;
Game1.score += 100;
}
}
}
誰かが何をすべきかについて光を当てることができれば、本当に感謝しています。私はたくさん試しましたが、何もうまくいきません:(