2013-04-23 50 views

回答

2

您可以使用Sprite(或您自己的跟蹤其當前位置的對象)代替在繪製時旋轉紋理。

draw調用不會存儲任何旋轉結果,它只是將紋理複製到屏幕上時旋轉。該類將跟蹤位置和旋轉,以便您可以查詢它。 (你應該使用Spritedraw方法來繪製它。)

Sprite也會給你一個軸對齊的邊界框。如果您想要紋理的旋轉角的精確位置,則需要從getVerticies()中提取它,或者從位置和旋轉中自行計算。

+0

感謝您的解釋清楚。還有一個疑問,我得到了代表圖像左上部分的旋轉對象的新x,y點,但是我想要中點底部的點。 – PraveenMax 2013-04-24 08:37:26

1

我不明白這個問題。我讀了幾次,但我甚至沒有得到你想知道的核心。如果使用spriteBatch.draw()繪製圖像,則繪製的圖像將放置在第二個和第三個參數的座標上,並圍繞相對原點旋轉/縮放。

如果你想知道圖像在屏幕上的位置,你應該考慮使用camera.project(Vector3);用3維矢量,其中x,y是你圖像的座標,z = 0; 矢量將乘以相機的矩陣,以便x,y將成爲屏幕座標。

+1

但我無法獲得旋轉圖像的新x,y值。 Camera.project只是不進行數值轉換。 – PraveenMax 2013-04-24 08:33:42

+0

我仍然不知道你想要找出什麼,但我已經知道它會是什麼:你是否試圖獲得旋轉圖像的中心座標,當它旋轉的原點是不是圖像的中心? – TheWhiteLlama 2013-07-26 01:04:51

1

或者更好的是,你應該在繪製之前旋轉圖像。如果你這樣做,你可以隨時從你的精靈/圖像對象中獲得旋轉。