如何使SK序列快速运行

问题描述 投票:0回答:2

我在网上发现了这个非常有用的代码,但是我无法使其运行。变量名都是正确的,并且我使用了print语句来确保它确实适用于此功能。它似乎似乎没有在Label节点上运行序列。谢谢

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)   

}
swift xcode sprite-kit sequence
2个回答
0
投票
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)

让我知道它是否有用。


0
投票
逐行执行上述代码(并在空场景中添加节点)给出了看来是期望的结果。大概您不是从场景的update(_:)方法中调用此函数,因为这会阻止标签和语音图标执行任何操作,因为在场景执行操作之前已删除了这些操作(请参见here)。在这组动作可以在其他地方完成之前,请确保您没有删除所有动作并更改标签的alpha。
© www.soinside.com 2019 - 2024. All rights reserved.