我想每隔十秒产生一个敌人(SKSpriteNode
)并随着时间的推移增加时间。有谁知道我怎么能做到这一点?
P.S。我已经尝试使用NSTimer,但我不断收到错误说:不能使用类型'的参数列表调用'scheduledTimerWithTimeInterval'(Double,target:GameScene - >() - > GameScene,selector:String,userInfo:nil,重复:Bool)'
答案 0 :(得分:0)
您只是错误地将参数调用到scheduledTimerWithTimeInterval
方法。
此API以非常“老式”的方式工作:它们不使用闭包而是使用target
对象(在其上调用选择器)和String -typed 方法选择器。
target
通常只是self
,例如您正在启动计时器的控制器也应该接收计时器事件。
selector
应该只是一个硬编码字符串:"handleTimer:"
所以你有:
class MyController {
override func viewDidLoad() {
super.viewDidLoad()
/* Repeats every 10 seconds. handleTimer() can feel free to invalidate
and re-schedule this timer at a different interval */
NSTimer.scheduledTimerWithTimeInterval(10.0, self, "handleTimer:", nil, true)
}
func handleTimer(timer: NSTimer) {
/* Do my awesome GameKit stuff here, using stored properties to refer to
all my scene objects. (Since I don't get any params passed in) */
/* Now play with the timer any way I like, e.g.: */
let newInterval = timer.timeInterval + 1.0
timer.invalidate()
NSTimer.scheduledTimerWithTimeInterval(newInterval, self, "handleTimer:", nil, true)
}
}