2011-03-04 59 views
2

的部分的我有250像素寬和2000像素高的紋理。它250x250的一部分根據各種條件(某種精靈表的,是)在屏幕上繪製。我想要的只是在具有一定旋轉的固定目標矩形內繪製它。可能嗎?旋轉子畫面的在XNA

回答

3

是。以下是如何有效地轉動你的目標矩形:

看一看的overloads for SpriteBatch.Draw

注意,沒有該取Rectangle作爲目的地的重載採取旋轉參數。這是因爲這樣的事情沒有多大意義。關於您希望旋轉目標的方式不明確。

但您可以通過仔細使用positionscale參數來達到與設置目標矩形相同的效果。與origin(縮放和旋轉的心,就該以像素爲單位指定的sourceRectangle)和rotation參數組合這些達到你想要的效果。

(如果,另一方面,要「適合」的矩形 -旋轉後有效擴充- 你將不得不同時使用transformMatrix參數Begin


現在 - 你的問題在這一點上不是很清楚:但是如果你之後的效果更像是旋轉你的矩形,那麼用普通的'SpriteBatch'就不能達到這個效果。

快速和骯髒的方式實現這一目標是在充當你的目標矩形視口。然後在其中繪製旋轉的精靈。請注意,SpriteBatch的座標系基於視口,而不是屏幕。

的「更好」(但更難實現)的方式來做到這一點是不使用SpriteBatch所有,但實現自己的子圖形繪製,讓你旋轉紋理座標。