如何在 swift 中获取 SK 序列到 运行

How do I get SK sequences to run in swift

我在网上找到了这个非常有用的代码,但我无法将其下载到 运行。变量名都是正确的,我已经使用 print 语句来确保它确实进入了这个函数。它似乎没有 运行 标签节点上的序列。谢谢

func fadeOutInfoText(){

    infoLabel1.removeAllActions()
    infoLabel2.removeAllActions()
    speechIcon.removeAllActions()

    let wait:SKAction = SKAction.wait(forDuration: 0.5)
    let fade:SKAction = SKAction.fadeAlpha(to: 0, duration: 0.5)
    let run:SKAction = SKAction.run {

        self.infoLabel1.text = ""
        self.infoLabel2.text = ""
        self.infoLabel1.alpha = 1
        self.infoLabel2.alpha = 1
        self.speechIcon.alpha = 1
        self.speechIcon.isHidden = true
    }


    let seq:SKAction = SKAction.sequence([wait,fade,run])
    let seq2:SKAction = SKAction.sequence([wait,fade])

    infoLabel1.run(seq)
    infoLabel2.run(seq2)
    speechIcon.run(seq2)   

}

这是序列的示例代码。

    let sprite = SKSpriteNode(imageNamed:"Spaceship")

    let scale = SKAction.scale(to: 0.1, duration: 0.5)
    let fade = SKAction.fadeOut(withDuration: 0.5)
    let sequence = SKAction.sequence([scale, fade])

    sprite.run(sequence)

告诉我有用没用

注意:这将是一条评论(还没有足够的声誉来这样做:)

逐行执行上面的代码(并在空场景中添加节点)给出了预期的结果。大概您没有从场景的 update(_:) 方法中调用此函数,因为这会阻止标签和语音图标执行任何操作,因为在场景执行操作之前删除了操作(请参阅 here)。在这组操作可以在别处完成之前,请确保您没有删除所有操作并更改标签的 alpha。