2016-02-19 8 views
6

Poniższy kod spowoduje animację obrotu.Zatrzymywanie działającego SKAction - Zestaw Sprite

let something:SKSpriteNode = SKSpriteNode() 

func start(){ 
    let rotateAction = SKAction.rotateToAngle(CGFloat(M_PI), duration: 10.0) 
    something.runAction(SKAction.sequence([rotateAction])) 
} 

Teraz chcę zatrzymać animację w czasie animacji. Czy jest coś podobnego do następującego? Chcę zatrzymać animację, gdy użytkownik dotknie ekranu.

func stop(){ 
    something.SKAction.stop() 
} 

Odpowiedz

10

You j Ust musiał użyć albo:

  1. something.paused = false // or true aby wstrzymać działania na węźle
  2. something.removeAllActions() na pewno usunąć działań związanych z węzłem
  3. nazwa Twojego działania przy uruchamianiu something.runAction(action,withKey:"action1") a następnie something.removeActionForKey("action1") usunąć daną akcję

Możesz także zmienić prędkość, jeśli to konieczne.

+0

pierwsza opcja jest naprawdę prosta i zadbana, dzięki –

2

Po pierwsze, należy uruchomić akcję z kluczem, dzięki czemu można go zidentyfikować później:

something.runAction(rotateAction, withKey: "rotate action") 

Następnie można go zatrzymać później poprzez wywołanie

something.removeActionForKey("rotate action") 

Alternatywnie, można usunąć wszystkie Działa również

something.removeAllActions()