2012-12-19 145 views
0

我想以平滑的方式移動一個精靈周圍的CCTMXMap。我已經想出瞭如何(使用CCActions)從瓷磚移動到瓷磚,但我在動畫中留下了空白(它暫停了一幀,而它重新評估走向的方向)。我嘗試在預定的更新中移動角色:方法,但是當您試圖限制精靈只從平鋪移動到平鋪時會變得雜亂。有關如何獲得乾淨,一致的動畫,而不使用更新凌亂的手動動畫的任何建議?Cocos 2D - 在平鋪地圖上移動精靈

回答

1

是的,請勿使用操作。使用CCActions時,您總會遇到1幀延遲問題。

在更新中移動精靈非常簡單。尤其是如果你限制運動速度(每幀點數),這個速度可以被瓦片大小清楚地劃分。例如,如果你的瓷磚是40x30,那麼水平速度1,2,4,8,10就可以正常工作。垂直1,2,3,5,6,10將工作。

更新通過這個號碼的位置,投下來爲int,它與目標位置比較:

if ((int)currentPos.x == (int)targetPos.x && (int)currentPos.y == (int)targetPos.y) 
{ 
    NSLog(@"I'm there!"); 
} 

原因鑄造爲int是爲了避免浮點值的舍入誤差。

另一種解決方案是 - 特別是如果你的角色一次只能朝一個方向移動 - 找出他需要到達那裏的幀數。如果角色必須向右移動40個點,並且他每幀移動4個點,則需要10個幀。然後只計算幀的數量(更新方法運行的次數),如果它達到10(或者如果你倒數計數爲0),那麼你就知道角色已經到達了,而不需要檢查他的位置。