2016-01-04 66 views
0

我目前在Swift中使用SpriteKit製作遊戲,並使用animateWithTextures()爲不同的動作製作動畫。現在我的問題是如何在動畫結束之前獲取當前幀的索引? 我需要獲取ID的原因是因爲有時我需要在完成之前取消某個操作,但不能太早。例如,我有一個動作包含10幀,玩家只能在第6幀後取消該動作?此外,我也可能稍後使用該框架來檢查動畫的過程。我如何獲得動畫中的幀索引

+1

我現在找不到它,所以我之前已經回答了這個問題,但是沒有辦法確定它本身的框架。你需要創建一個自定義的'SKAction',或者覆蓋我認爲'texture'屬性來確定顯示的紋理 – Knight0fDragon

+0

如何獲取當前的紋理或名稱?或者還有其他方法可以更好地控制動畫的持續時間嗎?除了檢查開始或完成動畫之外,程序員需要做的事情以及SpriteKits開發人員都會意識到,應該不僅僅是這樣嗎? –

+0

self.texture,你不能得到它的名字,你將不得不比較紋理。至於你的第二個問題,animateWithTextures只是一個數組,所做的一切都是黑色的,以保持簡單。這就是爲什麼我們有自定義動畫,您需要的高級功能 – Knight0fDragon

回答

0

你可以做這樣的事情:如果你把這段代碼的幀需要檢查每一個函數被調用時更新功能裏面,你可以很容易地在正確的停止動畫

 if String(yourSprite.texture).rangeOfString("frameImageName") != nil { 
      //code to stop animation 
      } 

所以點。