在更新功能中开始倒计时

Starting countdown in update func

我想在添加精灵后开始倒计时,以确保其他精灵会在一定时间后添加/功能会被调用。到目前为止,我已经确保变量 countdownCanStart 在我添加精灵时会从 false 变为 true。 touchesBegan 函数内部:

        //adding the sprite by touch
        addSprite()

        if spriteAdded {
            countdownCanStart = true

        }

然后在更新函数中:

    override func update(currentTime: NSTimeInterval) {
    if countdownCanStart {
        var framecount = 0
        framecount++

        if framecount == 10 {
            AddTheOtherSprites()
        }
    }


}

代码运行,它没有崩溃,但在 AddTheOtherSprites() 行旁边我看到一个黄色警告标志:"Will never be executed"

您在 update 方法中创建 framecount,因此每次 update 开始时都会创建一个新的 framecount,并在 update 结束时销毁.因此,最大 framecount 将达到 1(从 framecount++ 开始),因此 framecount == 10 总是 returns false。要解决此问题,请将 framecount 放在 您的 update 方法之外。

在您的 update 函数中,您正在声明一个新变量 framecount 并将其初始化为 0。然后递增它,然后检查它是否等于 10。永远不会 - 每次您 运行 update,将声明一个新的 framecount 变量,并且只有在 if 语句中针对 10 进行测试时,它的值才会永远为 1。

此警告是由于 framecount 是局部范围的 var(关于更新方法),因此每次调用更新方法时 framecount 都将初始化为 0 并递增乘以 1,因此它永远不会等于 10。

framecount 的范围更改为更新方法之外