How to assign Keys to SKActions in Swift

拈花ヽ惹草 提交于 2019-12-21 14:06:34

问题


I was hoping someone would be able to help me with this problem. I can't seem to find a way to assign a key to an SKAction for Sprite Kit for the removeActionWithKey method. I have also tried assinging the action to a key in a dictionary but the program didn't recognize the key assignment and thus returned a nil value.

Here is what I tried to do:

var textureanimation = SKAction.repeatActionForever(SKAction.animateWithTextures(_walkingframes, timePerFrame: 0.1))
var dictionary = ["animation": textureanimation]
    object.runAction(actionForKey("animation"))

    var sequence = [SKAction.moveTo(tap_position, duration: time_duration),
        SKAction.runBlock{

            object.removeActionForKey("animation")}

回答1:


You can do it in the runAction method

sprite.runAction(myCoolAction, withKey: "Cool Action")

This will allow you to remove the action by name

sprite.removeActionForKey("Cool Action")

Just from experience, I'd recommend placing action string names in variables. It will cut down on the weird bugs from very slightly misspelled action names.

So an improved version of this is a class var

let coolActionName = "Cool Action"

// Your other code

// Run the action
sprite.runAction(myCoolAction, withKey: coolActionName)

// Time to remove the action
sprite.removeActionForKey(coolActionName)


来源:https://stackoverflow.com/questions/24787252/how-to-assign-keys-to-skactions-in-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!