1
我正在繪製基於圖塊的遊戲。一些瓷磚可以圍繞它們的中心旋轉。看起來,設置一個SpriteBatch.Draw調用的旋轉原點會影響所有其他未指定原點的Draw調用。使用不同旋轉原點的Spritebatch
有沒有辦法避免爲每個其他的繪製圖片調用非旋轉瓷磚?
理想情況下,我不想要將我的非旋轉瓷磚批量繪製在一起,然後在繪製之前/單獨繪製旋轉瓷磚。
我正在繪製基於圖塊的遊戲。一些瓷磚可以圍繞它們的中心旋轉。看起來,設置一個SpriteBatch.Draw調用的旋轉原點會影響所有其他未指定原點的Draw調用。使用不同旋轉原點的Spritebatch
有沒有辦法避免爲每個其他的繪製圖片調用非旋轉瓷磚?
理想情況下,我不想要將我的非旋轉瓷磚批量繪製在一起,然後在繪製之前/單獨繪製旋轉瓷磚。
看起來,設置一個SpriteBatch.Draw調用的旋轉原點會影響所有其他未指定原點的Draw調用。
這根本就不是這種情況。 origin
的Draw
僅適用於該特定的Draw
。
如果您使用的Draw
過載未指定原點,則隱式使用Vector2.Zero
的原點。現在
,如果你實際上是在傳遞一個矩陣Begin
,該矩陣將被應用到所有Draw
呼叫(包括在其中設置原點的)在那個特定的精靈批次,直到其End
方法被調用。
你應該使用旋轉參數Draw
來旋轉你的世界中的個別精靈。您應該使用Begin
上的矩陣參數來移動所有精靈的視圖(如相機)。
+1非常完整的答案。 – jv42 2011-04-16 11:40:44