在更新功能中开始倒计时
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
的范围更改为更新方法之外
我想在添加精灵后开始倒计时,以确保其他精灵会在一定时间后添加/功能会被调用。到目前为止,我已经确保变量 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
的范围更改为更新方法之外