このwhileループは、必要な値を長方形配列に適切に格納しません。長方形は、スプライトシートからスプライトを引き出すために使用されます。以下のコメントアウトされたコードは完全に機能します。内側のループは最初の行を設定するために完全に機能しますが、外側のループを追加するとすべてが台無しになります。sizeOfEachSpriteXとsizeOfEachSpriteYの値は両方とも32です(スプライトは正方形です)。スプライトシートのサイズは、幅96、高さ128です。これは、4行、3列のスプライトです。目標は、コメントアウトされたコードが達成するように、長方形を長方形[どの行、どの列]として宣言することです。後の反復が最初の反復のデータを上書きし、プロセス全体を破壊しているように見えます。私はかなり混乱しています!
int n = 0;
int n2 = 0;
while (n2 < 5)
{
while (n < 4)
{
Rectangles[n2, n] = new Rectangle
(sizeOfEachSpriteX * n2,
sizeOfEachSpriteY * n,
sizeOfEachSpriteX,
sizeOfEachSpriteY);
n++;
}
n2++;
}
/* This code works perfectly.
Rectangles[0,0] = new Rectangle(0,0,32,32);
Rectangles[0,1] = new Rectangle(0,32,32,32);
Rectangles[0,2] = new Rectangle(0,64,32,32);
Rectangles[0,3] = new Rectangle(0,96,32,32);
Rectangles[1,0] = new Rectangle(32,0,32,32);
Rectangles[1,1] = new Rectangle(32,32,32,32);
Rectangles[1,2] = new Rectangle(32,64,32,32);
Rectangles[1,3] = new Rectangle(32,96,32,32);
Rectangles[2,0] = new Rectangle(64,0,32,32);
Rectangles[2,1] = new Rectangle(64,32,32,32);
Rectangles[2,2] = new Rectangle(64,64,32,32);
Rectangles[2,3] = new Rectangle(64,96,32,32);
*/