2012-02-19 81 views
0

我一直在尋找一段時間來弄清楚如何從圖像中繪製出紅色的每個像素上的精靈。 因此,如果我得到一個圖像上有一些紅色像素,遊戲會在圖像中的每個紅色像素上繪製一些精靈。 這裏有一個例子:XNA獲取像素顏色並在每個像素上繪製精靈

http://i.stack.imgur.com/37MDP.png

而且,我很新的節目。

+0

你只是想用紅色像素的圖像來創建一個地圖佈局?這樣做絕對有可能,但不是我推薦給編程新手的人。只是好奇它是你試圖用像素來實現,然後嘗試像素所在的紋理。 – 2012-02-19 16:48:48

+0

如喬治所說,如果它是一張地圖,那麼文本(如ASCII藝術)可能更容易。 – 2012-02-20 01:28:15

回答

0

將圖像加載到Texture2D中。從這裏你可以將精確的像素數據提取到一個數組中。

Color[] pixelColours = new Color[MyTexture.Width*MyTexture.Height]; 
MyTexture.GetData<Color>(pixelColours); 

現在這個數組可以循環,檢查每個元素的紅色通道值。如果它通過「紅色測試」,那麼你知道在哪裏繪製精靈。這是循環的一些示例代碼,以及如何將單個整數索引轉換爲x,y座標。

for(int i=0;i<pixelColours.Length;i++) 
{ 
    if(pixelColours[i].R == 1) 
    { 
     Vector2 coords = new Vector2((int)i%MyTexture.Width, (int)Math.Floor(i/MyTexture.Width)); 
    } 
} 

因此,id sugest在加載圖像時將所有這些操作都作爲一次性關閉,將座標保存到某處的列表中。然後當您將精靈畫到屏幕上時,只需將這些座標值乘以您正在繪製的圖塊的大小即可。

希望這有助於。