2013-04-12 71 views
2

目前我使用andEngine版本1.我的Sprite如何從andEngine中的當前位置旋轉(平滑旋轉)給定的角度?

目前我的精靈與角度旋轉產生的安卓遊戲演示應用程序如下圖所示代碼

aircraft.setRotation((float) rotationAngle); 

,但我的精靈從其初始位置旋轉每但我想從目前的位置,而不是它的初始位置。因爲在我的遊戲應用程序精靈重複(多次)不同角度旋轉。所以它看起來非常糟糕! (因爲每次都是混蛋),所以我想讓我的精靈順利旋轉,我該怎麼做呢?

我也用這個代碼順利旋轉,但仍然沒有得到流暢的旋轉..?

//這是用於飛行器

的成爲平滑的旋轉的for(int i = 0;我< = rotationAngle;我++){

_aircraft.setRotation((float) i); 

}

+0

如果你沒有找到願望的答案,然後提供更多的信息,你想說什麼。 – Siddharth

+0

我的精靈圖像是水平的,如果我給出0到360之間的旋轉角度,那麼精靈每次都以其初始位置旋轉(在我的情況下是從水平方向),不管我的精靈目前是否在垂直方向,儘管從初始位置開始旋轉)。所以我想我的精靈應該從它的當前位置旋轉而不是它的初始位置。我現在想清楚它。 – Hits

回答

0

作爲每我明白你您必須使用的問題

aircraft.setRotationCenter(pCenterX,pCenterY); 

使用此方法可以旋轉您你想要的願望位置上的對象。默認的旋轉角度是你的精靈的中心。

+0

我想說一件事我的精靈(飛機)不斷運行,所以我們不能爲精靈提供旋轉中心,否則它會回到旋轉點,然後旋轉,因此看起來非常糟糕。 – Hits

+0

您必須使用旋轉修改器,您必須在其中提供當前角度和要旋轉的角度,以便從當前角度開始旋轉至所需角度。如果你想要這個動作繼續,那麼用戶循環修飾符。 – Siddharth

+0

謝謝你給我解決方案的工作正常。 – Hits

1

如果我正確地讀你的問題,這是你想要的: 每次你調用「setRotation」,你想旋轉考慮到當前旋轉加上「rotationAngle」變量指定的額外旋轉量。 如果是這樣,那麼解決方案很簡單。

相反的:

aircraft.setRotation((float) rotationAngle); 

用途:

aircraft.setRotation((float) (aircraft.getRotation()+rotationAngle)); 

通過這種方式,你可以在任何時候轉動由一組角度(rotationAngle)的飛機,這將是量增加飛機當前的旋轉。

+0

如果我們以上完成,那麼我在這裏解釋如果在我的情況下飛機。getRotation()+ rotationAngle = 90,那麼飛機首先移動它的當前位置(如水平方向),然後設置到第90個角度,如果重複這樣做,那麼它看起來像每個時間平面變得很猛(設置0到90度角)適當。 – Hits