spacecash21 spacecash21 - 1 year ago 98
Swift Question

SKAction Completion Handlers; usage in Swift

I'm new to Swift and SpriteKit. A lot of the samples of SpriteKit Actions are in Objective C, which I can't map to, nor get working, in Swift.

If running an SKAction, and upon SKAction completion wanting to do something else, how do I get this right, in Swift?

spaceMan.runAction(spaceManDeathAnimation, completion: {
println("red box has faded out")

Any ideas will be greatly appreciated.


for i in 0...29 {
textures.append(SKTexture(imageNamed: "spaceManDeath_\(i)"))
spaceManDeathAnimation = SKAction.repeatActionForever(SKAction.animateWithTextures(textures, timePerFrame: 0.15625))

Answer Source

You completion code is not called since your "death" action is running forever, which means it will never end.

You can use

+ repeatAction:count:

method for setting a count for how many repeats will be made before finishing:

spaceManDeathAnimation = SKAction.repeatAction(SKAction.animateWithTextures(textures, timePerFrame: 0.15625), count:5)
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download