sprite-kit
Zeitgesteuerte Funktionen in SpriteKit: SKActions vs NSTimers
Suche…
Bemerkungen
Wann sollten Sie mit SKAction
s SKAction
ausführen? Fast immer. Der Grund dafür ist, dass das Sprite Kit
mit einem Aktualisierungsintervall arbeitet und die Geschwindigkeit dieses Intervalls während der gesamten Lebensdauer des Prozesses mithilfe der speed
geändert werden kann. Szenen können auch angehalten werden. Da SKAction
innerhalb der Szene arbeitet, müssen Sie Ihre Zeitfunktionen nicht ändern, wenn Sie diese Eigenschaften ändern. Wenn sich Ihre Szene nach 0,5 Sekunden im Prozess befindet und Sie die Szene anhalten, müssen Sie keine Zeitgeber anhalten und die Differenz von 0,5 Sekunden beibehalten. Es wird Ihnen automatisch gegeben, so dass die verbleibende Zeit bei einer Pause fortgesetzt wird.
Wann sollten Sie NSTimer
, um NSTimer
auszuführen? Wann immer Sie etwas haben, das außerhalb der SKScene
Umgebung festgelegt werden muss, und auch ausgelöst werden muss, wenn die Szene angehalten ist, oder mit konstanter Geschwindigkeit ausgelöst werden muss, auch wenn sich die Szenengeschwindigkeit ändert.
Dies ist am besten UIKit
, wenn Sie sowohl mit UIKit
Steuerelementen als auch mit UIKit
Steuerelementen SpriteKit
. Da UIKit
keine Ahnung hat, was mit SpriteKit
, werden NSTimer
unabhängig vom Zustand der SKScene
. Ein Beispiel wäre, dass wir ein UILabel
, das jede Sekunde ein Update erhält und Daten aus Ihrem SKScene
.
Implementieren einer Methode, die nach einer Sekunde ausgelöst wird
SKAction:
let waitForOneSecond = SKAction.waitForDuration(1) let action = SKAction.runBlock(){action()} let sequence = SKAction.sequence([waitForOneSecond,action]) self.runAction(sequence)
NSTimer:
NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(action), userInfo: nil, repeats: false)