2016-07-28 10 views
0

SKAction私はtouchesEndedで取り消したいと思っています。現時点では、私はこのコードを持っています:self.player.removeAllActions()とコードが動作します。私が経験している問題は、コードが自分のプレイヤーのアニメーションを含むすべてのアクションをキャンセルしていることです。私は研究を行い、コード:player.removeActionForKey()が見つかりましたが、私のアクションコードにはキーが含まれていません。以下の私のコードを参考にしてください。ありがとうございました。SpriteKitで特定のSKAction.movebyXをキャンセルするには?

あなたがアクションにキーを割り当て、その後、キーを参照することにより、それを取り消すことができ
import SpriteKit 

var player = SKSpriteNode() 

//i skipped code in view did load. 
// now in touches began: 

let rightMoveAction = SKAction.moveByX(50, y: 0, duration: 0.1) 
player.runAction(SKAction.repeatActionForever(rightMoveAction)) 

let leftMoveAction = SKAction.moveByX(-50, y: 0, duration: 0.1) 
player.runAction(SKAction.repeatActionForever(leftMoveAction)) 

// in touches ended 

self.player.removeAllActions() 

// as i mentioned earlier, it works but i need to cancel 1 action not all as i have an animated player. 

答えて

1

は、アクションにキーを追加します。

player.runAction(SKAction.repeatActionForever(rightMoveAction), withKey: "RightMove") 

そして、これを行うことによって、それを削除:

player.removeActionForKey("RightMove") 
関連する問題