2010-11-08 123 views
0

有誰知道如何將轉換應用於雪碧沒有SpriteBatch.Draw()方法的機會?XNA雪碧轉換

(更新時評論) 這就是我需要的:我有一個圓形精靈。這張照片包含陰影。我需要拉伸這個圓(使橢圓)並旋轉它,但是我希望陰影不會將其位置改變爲橢圓。旋轉和縮放每幀改變一次。我認爲這是可能的矩陣轉換

+0

你的問題是沒有意義的,你可以嘗試改寫它你到底想達到 – 2010-11-08 12:59:35

+0

我需要:??在第一旋轉精靈,然後縮放它。方法SpriteBatch.Draw()首先縮放sprite,然後旋轉它。 – 2010-11-08 13:23:11

回答

0

最後應用傳遞到SpriteBatch.Begin的矩陣。使用此方法是通過SpriteBatch執行旋轉操作後實現縮放操作的唯一方法(假設您的縮放比例不均勻)。

缺點是,如果每個精靈的比例不同,則必須爲每個精靈開始一個新的批處理。

你的其他選擇是編寫你自己的精靈batcher - 但這似乎有點激烈。

0

謝謝!我找到了解決方案,但它是非常緩慢=(

this.displayMatrix = 
       Matrix.CreateTranslation(-(new Vector3(Position, 0))) * 
       Matrix.CreateRotationZ(1) * 
       Matrix.CreateScale(new Vector3(new Vector2(1f, 2f), 1)) * 
       Matrix.CreateTranslation((new Vector3(Position, 0)));