Sprite kit Spritekit SKAction序列led键入动画中的键入不均匀

Sprite kit Spritekit SKAction序列led键入动画中的键入不均匀,sprite-kit,swift3,Sprite Kit,Swift3,嗨,我知道这里有很多关于计时器的问题,但是我找不到关于这个具体问题的任何东西。提前感谢您的帮助 我试图使用一系列SKActions来模拟用户触摸后开始的键入动画(在我称为actualLabel的SKLabelNode中) 我有以下资料: var charArray = [] var labelText = "" var calls = 0 func redoLabelText() { if labelText.characters.count < charArray.count

嗨,我知道这里有很多关于计时器的问题,但是我找不到关于这个具体问题的任何东西。提前感谢您的帮助

我试图使用一系列SKActions来模拟用户触摸后开始的键入动画(在我称为actualLabel的SKLabelNode中)

我有以下资料:

var charArray = []
var labelText = ""
var calls = 0
func redoLabelText() {
    if labelText.characters.count < charArray.count {
        labelText += charArray[calls]
        actualLabel.text = labelText
        calls += 1
    }
}
然后,在接触中:

if calls < charArray.count + 1 {
    let wait = SKAction.wait(forDuration: 1)
    let block = SKAction.run({
                self.redoLabelText()
            })
    let sequence = SKAction.sequence([wait,block])
    run(SKAction.repeatForever(sequence))
}
if调用
我的职能如下:

var charArray = []
var labelText = ""
var calls = 0
func redoLabelText() {
    if labelText.characters.count < charArray.count {
        labelText += charArray[calls]
        actualLabel.text = labelText
        calls += 1
    }
}
func redoLabelText(){
如果labelText.characters.count
然后touchesbeated重置所有初始变量,过程再次开始。一切都很好,只是打字很不稳定。每次用户再次按下,打字速度都会加快。这就好像在按下一次之后它工作正常,然后在按下两次之后,每隔一秒就会有更多的字符在labelText中等待


再次感谢,让我困惑

似乎是行动的重叠。试着看看答案谢谢,完美的解释隐藏在另一个问题中!我有一个解决方案,很快就会发布。然而,一个合适的解决方案只有在objC中可用,除非你编写自己的CoreAnimation。你是在尝试只为一两个实例这样做,还是在制作某种基于对话的游戏,并且需要广泛使用这种效果?(改变我的回答方式)