我想了解一下,例如,遊戲窗口上Vector2(2,5)的像素是否爲Color.Red或某種其他顏色或一組座標。我怎樣才能做到這一點?如何讀取XNA中特定像素的顏色?
0
A
回答
0
將紋理轉換爲數組,然後基於協調查找指定像素並獲取顏色。例子可以在Reimers XNA的網頁上找到。
private Color[,] TextureTo2DArray(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];
}
}
轉換顏色
public static string ToHex(this Color color, bool includeHash)
{
string[] argb = {
color.A.ToString("X2"),
color.R.ToString("X2"),
color.G.ToString("X2"),
color.B.ToString("X2"),
};
return (includeHash ? "#" : string.Empty) + string.Join(string.Empty, argb);
}
+0
出於好奇,這個方法返回一個十六進制值的顏色嗎? – Jonny
+0
不,但您可以從顏色中去除(a)rgb值。 'color.r.toString(「x2」)'會給你十六進制值或紅色。所以加入「r」「g」「b」會給你hexa的顏色代碼。 –
0
應該首先閱讀後備緩衝圖形設備(使用GraphicsDevice.GetBackBufferData()
)到ARGB到紋理,然後檢查紋理如上所述。
相關問題
- 1. XNA中的單個像素顏色
- 2. 如何從圖片框中獲取特定像素的顏色?
- 3. 如何在CCSprite中獲取特定像素的RGBA顏色
- 4. 讀取圖像的像素顏色
- 5. 如何從一種特定的顏色讀取像素的位置?
- 6. 如何找出圖像中的「特定像素的顏色」?
- 7. 如何查找圖像中特定顏色的像素數量?
- 8. 如何從紋理中讀取像素的顏色(cocos2d-js)?
- 9. PNG ++讀取像素顏色值
- 10. 如何在XNA中繪製具有特定顏色的圓?
- 11. 如何在Rails中選擇特定像素的顏色?
- 12. WriteableImage - 如何獲取像素的顏色?
- 13. 如何獲取圖像中像素的顏色(加載灰色)?
- 14. 閱讀android中的像素顏色
- 15. 在XNA中着色一個特定的顏色
- 16. 如何從像素獲取顏色? OpenGL
- 17. XNA如何使xna不能讀透明顏色
- 18. iPhone:如何更改UIImage特定像素的顏色?
- 19. 如何在圖像中查找特定座標中的像素顏色?
- 20. 如何使用SDL2讀取像素顏色?
- 21. PyPNG讀取48位,更改像素顏色,寫入像素
- 22. 閱讀單色位圖像素顏色
- 23. 在java中掃描某個特定像素顏色的圖像
- 24. 替換圖像中的特定顏色像素
- 25. BufferImage:如何確定像素顏色
- 26. 給予特定像素的特定顏色
- 27. XNA獲取像素顏色並在每個像素上繪製精靈
- 28. 如何獲取網頁上任何指定像素的顏色?
- 29. 從圖像中獲取像素顏色
- 30. FreeImage:獲取像素顏色
您可以使用與每像素碰撞中使用的方法相同的方法。獲取紋理的顏色數據並循環檢查這些像素是否與其他紋理像素相對照。你只需稍微改變一下就可以得到它,所以你可以使用座標並獲得特定的顏色數據。基本上是顏色或以特定順序存儲在數組中。然後,您只需計算紋理的x和y位置以及要載入正確像素的vector2。另請注意,如果使用縮放紋理,則需要使用矩陣來獲取正確的像素。 – deathismyfriend
我知道如何從紋理等獲取數據,但我想要做的是獲取遊戲窗口中特定像素的顏色,而不是紋理。 – ApachePilotMPE
你將不得不在這一點找出所有的紋理。然後,您可以從上面提到的紋理中獲取顏色。 – deathismyfriend