如何让SK序列在swift中运行
我在网上发现了这段非常有用的代码,但我在运行时遇到了麻烦。变量名都是正确的,并且我使用了print语句来确保它确实符合这个函数。它似乎没有在标签节点上运行序列。谢谢如何让SK序列在swift中运行,swift,xcode,sprite-kit,sequence,Swift,Xcode,Sprite Kit,Sequence,我在网上发现了这段非常有用的代码,但我在运行时遇到了麻烦。变量名都是正确的,并且我使用了print语句来确保它确实符合这个函数。它似乎没有在标签节点上运行序列。谢谢 func fadeOutInfoText(){ infoLabel1.removeAllActions() infoLabel2.removeAllActions() speechIcon.removeAllActions() let wait:SKAction = SKAction.wait(f
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(:)
方法调用此函数,因为这样可以防止标签和语音图标执行任何操作,因为在场景执行操作之前,操作已被删除(请参见)。确保在这组操作可以在其他地方完成之前,您没有删除所有操作并更改标签的alpha值。发问者应该如何实现这一点还不完全清楚。我理解它应该如何工作,但对于我上面的示例,情况并非如此。我甚至尝试过这样做:“infoLabel1.run(SKAction.sequence([wait,fade,run])”,尝试跳过seq行,但仍然不起作用。标签节点仍在显示文本,而不是什么都没有。我也尝试了单独的SKAction,比如fade,但仍然没有。所以我的建议是在本地初始化SKSpritode,然后运行它。我尝试了一下,但仍然不起作用。我试着在序列中使用另一个节点,这很有效,所以我认为标签有问题。我在函数开始时打印标签,它确实说明了它的用途,所以我看不出它有什么问题。