2011-04-15 55 views
1

我正在繪製基於圖塊的遊戲。一些瓷磚可以圍繞它們的中心旋轉。看起來,設置一個SpriteBatch.Draw調用的旋轉原點會影響所有其他未指定原點的Draw調用。使用不同旋轉原點的Spritebatch

有沒有辦法避免爲每個其他的繪製圖片調用非旋轉瓷磚?

理想情況下,我不想要將我的非旋轉瓷磚批量繪製在一起,然後在繪製之前/單獨繪製旋轉瓷磚。

回答

2

看起來,設置一個SpriteBatch.Draw調用的旋轉原點會影響所有其他未指定原點的Draw調用。

這根本就不是這種情況。 originDraw僅適用於該特定的Draw

如果您使用的Draw過載未指定原點,則隱式使用Vector2.Zero的原點。現在

,如果你實際上是在傳遞一個矩陣Begin,該矩陣將被應用到所有Draw呼叫(包括在其中設置原點的)在那個特定的精靈批次,直到其End方法被調用。

你應該使用旋轉參數Draw來旋轉你的世界中的個別精靈。您應該使用Begin上的矩陣參數來移動所有精靈的視圖(如相機)。

+0

+1非常完整的答案。 – jv42 2011-04-16 11:40:44

相關問題