如何更新 waitForDuration 常量?
How to update waitForDuration constant?
我有一个闪光灯,它使用隐藏和取消隐藏圆形节点的 SKAction 序列。我希望能够根据两个按钮更改它闪烁的间隔。我声明了一个变量 stdTime 并在 touchesBegan 方法中更改了它,但它不起作用。我错过了什么?
我的 didMoveToView:
let blink = SKAction.sequence([
SKAction.waitForDuration(stdTime),
SKAction.hide(),
SKAction.waitForDuration(stdTime),
SKAction.unhide()])
let blinkForever = SKAction.repeatActionForever(blink)
metronome!.runAction(blinkForever)
我的接触开始了:
if upArrow!.containsPoint(location) {
stdTime = stdTime + 0.1
println("here: \(stdTime)")
}
waitForDuration 接受 NSTimeInterval 而不是变量。因此,它需要在创建时设置该变量的任何时间,并且不会引用回您使用的变量。
这可能会有所帮助,具体取决于您要查找的结果。
func startBlink(){
let blink = SKAction.sequence([
SKAction.waitForDuration(stdTime),
SKAction.hide(),
SKAction.waitForDuration(stdTime),
SKAction.unhide()])
let blinkForever = SKAction.repeatActionForever(blink)
metronome!.removeActionForKey("blink")
metronome!.runAction(blinkForever, withKey: "blink")
}
if upArrow!.containsPoint(location) {
stdTime = stdTime + 0.1
startBlink()
println("here: \(stdTime)")
}
不中断序列的另一种选择是做这样的事情
func startBlink(){
let blink = SKAction.sequence([
SKAction.waitForDuration(stdTime),
SKAction.hide(),
SKAction.waitForDuration(stdTime),
SKAction.unhide(),
SKAction.runBlock( {
self.startBlink()
})])
metronome?.runAction(blink, withKey: "blink")
}
if upArrow!.containsPoint(location) {
stdTime = stdTime + 0.1
println("here: \(stdTime)")
}
并自行递归调用该方法。这样每次到达终点时都会采用更新的 stdTime。
我有一个闪光灯,它使用隐藏和取消隐藏圆形节点的 SKAction 序列。我希望能够根据两个按钮更改它闪烁的间隔。我声明了一个变量 stdTime 并在 touchesBegan 方法中更改了它,但它不起作用。我错过了什么?
我的 didMoveToView:
let blink = SKAction.sequence([
SKAction.waitForDuration(stdTime),
SKAction.hide(),
SKAction.waitForDuration(stdTime),
SKAction.unhide()])
let blinkForever = SKAction.repeatActionForever(blink)
metronome!.runAction(blinkForever)
我的接触开始了:
if upArrow!.containsPoint(location) {
stdTime = stdTime + 0.1
println("here: \(stdTime)")
}
waitForDuration 接受 NSTimeInterval 而不是变量。因此,它需要在创建时设置该变量的任何时间,并且不会引用回您使用的变量。
这可能会有所帮助,具体取决于您要查找的结果。
func startBlink(){
let blink = SKAction.sequence([
SKAction.waitForDuration(stdTime),
SKAction.hide(),
SKAction.waitForDuration(stdTime),
SKAction.unhide()])
let blinkForever = SKAction.repeatActionForever(blink)
metronome!.removeActionForKey("blink")
metronome!.runAction(blinkForever, withKey: "blink")
}
if upArrow!.containsPoint(location) {
stdTime = stdTime + 0.1
startBlink()
println("here: \(stdTime)")
}
不中断序列的另一种选择是做这样的事情
func startBlink(){
let blink = SKAction.sequence([
SKAction.waitForDuration(stdTime),
SKAction.hide(),
SKAction.waitForDuration(stdTime),
SKAction.unhide(),
SKAction.runBlock( {
self.startBlink()
})])
metronome?.runAction(blink, withKey: "blink")
}
if upArrow!.containsPoint(location) {
stdTime = stdTime + 0.1
println("here: \(stdTime)")
}
并自行递归调用该方法。这样每次到达终点时都会采用更新的 stdTime。