以下の例は、XNA で Texture2D からデータを取得する C# の例です。私の理解では、最初に Texture2D.GetData を使用してデータを 2D 配列にプルすることはできません。
1D 配列に次のような値が含まれている場合:1, 2, 3, 4, 5, 6, 7, 8, 9
その1次元配列を2D配列にコピーして、2D配列に次のような値を持たせることは可能ですか?
1, 2, 3
4, 5, 6
7, 8, 9
私の目標は、反復してインデックスを計算するのではなく、配列全体を 1D から 2D にコピーすることです。私の現在のコードは次のようなものです:
Color[,] TextureDataTo2DArray(Texture2D texture)
{
Color[] colors1D = new Color[texture.Width * texture.Height];
texture.GetData(colors1D);
Color[,] colors2D = new Color[texture.Width, texture.Height];
for (int x = 0; x < texture.Width; x++)
for (int y = 0; y < texture.Height; y++)
colors2D[x, y] = colors1D[x + y * texture.Width];
return colors2D;
}