web-dev-qa-db-ja.com

実行中のSKActionの停止-スプライトキット

次のコードは、回転をアニメーション化します。

let something:SKSpriteNode = SKSpriteNode()

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

ここで、アニメーション期間内にアニメーションを停止したいと思います。次のようなものはありますか?ユーザーが画面に触れたときにアニメーションを停止したい。

func stop(){
  something.SKAction.stop()
}
13
Clinton Lam

次のいずれかを使用する必要があります。

  1. _something.paused = false // or true_ノードでのアクションを一時停止します
  2. something.removeAllActions()ノードに関連付けられたアクションを確実に削除します
  3. something.runAction(action,withKey:"action1")を起動してからsomething.removeActionForKey("action1")を起動するときにアクションに名前を付けて、特定のアクションを削除します

必要に応じて速度を変更することもできます。

17

まず、後で識別できるように、キーを使用してアクションを実行します。

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

その後、電話して後で停止できます

something.removeActionForKey("rotate action")

または、すべてのアクションを削除することもできます

something.removeAllActions()
4
ZeMoon