我不會建議像其他人所建議的那樣添加整數。
所有你需要的是增量時間。我假設你有一個部分的工作,但我會後萬一
場景屬性
// time values
var delta:NSTimeInterval = NSTimeInterval(0)
var last_update_time:NSTimeInterval = NSTimeInterval(0)
場景的更新方法(也爲您的精靈更新方法,並通過delta
到這裏)
func update(currentTime: NSTimeInterval) {
if self.last_update_time == 0.0 {
self.delta = 0
} else {
self.delta = currentTime - self.last_update_time
}
self.yourSprite.update(self.delta)
你的精靈的時間特性
var timeSinceTouched = NSTimeInterval(0)
let timeLimit = NSTimeInterval(5.0)
你的精靈更新/觸摸方法
func touched(){
self.timeSinceTouched = 0.0
}
func update(delta: CFTimeInterval) {
if self.timeSinceTouched < self.timeLimit {
self.timeSinceTouched += delta
} else {
// five seconds has elapsed
}
你並不需要使用的NSTimer的這一點,只需設置一個整型變量和1的update()函數添加到它。然後,只需簡單的轉換就可以在幾秒鐘內獲得這個時間,因爲update()會爲每個幀添加1到您的計時器變量。 –
@BrennanAdler這可能是相當不可靠的,因爲幀速率可能會有所不同。 – ZeMoon
@ZeMoon除非你正在做硬核3D圖形或一大堆東西,它將保持在60 fps非常穩定。對於這個人正在製作的遊戲來說,這看起來非常不靈活。 –