私はレベル用のレイアウトを含む画像を持っています。画像から各ピクセルの色を読み込み、対応するブロックを描画することによってゲームのレベルを読み込みたいと思います。私はこのコードを使用しています:Texture2D XNAから各ピクセルの色の配列を取得しますか?
public void readLevel(string path, GraphicsDevice graphics)
{
//GET AN ARRAY OF COLORS
Texture2D level = Content.Load<Texture2D>(path);
Color[] colors = new Color[level.Width * level.Height];
level.GetData(colors);
//READ EACH PIXEL AND DRAW LEVEL
Vector3 brickRGB = new Vector3(128, 128, 128);
int placeX = 0;
int placeY = 0;
foreach (Color pixel in colors)
{
SpriteBatch spriteBatch = new SpriteBatch(graphics);
spriteBatch.Begin();
if (pixel == new Color(brickRGB))
{
Texture2D brick = Content.Load<Texture2D>("blocks/brick");
spriteBatch.Draw(brick, new Rectangle(placeX, placeY, 40, 40), Color.White);
}
if(placeX == 22)
{
placeX = 0;
placeY++;
}
else
spriteBatch.End();
}
}
ただ空白の画面が表示されます。助けていただければ幸いです!
編集:問題が解決しました! (下のhtmlcoderexeの答えを読んでください)また、このコードに別の問題がありました。here.