2012-06-08 51 views
0

我需要在xna中繪製簡單的alpha地圖,這取決於當前的遊戲狀態。我無法在資源中保存多種alpha地圖,所以我想動態地繪製它們。Xna:繪製動態alpha地圖

例如sprite可以部分隱藏在牆後面。

我想到使用System.Drawing,但是當我包含此dll時,與Xna命名空間存在衝突。有沒有另一種方法可以在xna中繪製簡單的位圖?

謝謝你的時間。

+1

你能想到任何其他需要你動態生成alpha地圖的情況嗎?部分模糊的精靈可以像在不同層中繪製精靈一樣簡單(帶或不帶深度緩衝區)。使用圖形API的許多事情都可能在開始時很直觀。這可能是有一個更簡單的方法來做你需要的。 – Ani

+0

@ananthonline感謝您的建議:) – Kasyx

回答

2

你不應該使用System.Drawing類。這些工作在位於系統RAM中的圖像上。而是使用XNA來操縱GPU內存中的紋理。

您可以使用SetRenderTarget()將紋理設置爲渲染目標。這將導致在紋理上執行進一步的繪製調用。這樣,您可以在紋理上繪製所有內容。但是,您不會有繪製圓形,方形等的方法。要實現此目的,您應該使用相應的幾何體創建頂點緩衝區或使用精靈模板。

+0

您已將我的注意力付諸於重要的事情:在GPU上繪製它。謝謝。 – Kasyx