sprite-kit
Funzioni a tempo in SpriteKit: SKActions vs NSTimers
Ricerca…
Osservazioni
Quando dovresti usare SKAction
per eseguire le funzioni del timer? Quasi sempre. Il motivo è che Sprite Kit
opera su un intervallo di aggiornamento e la velocità di questo intervallo può essere modificata per tutta la durata del processo utilizzando la proprietà speed
. Anche le scene possono essere messe in pausa. Poiché i lavori di SKAction
all'interno della scena, quando modifichi queste proprietà, non è necessario modificare le tue funzioni temporali. Se la scena è di 0,5 secondi nel processo e si mette in pausa la scena, non è necessario interrompere i timer e mantenere tale differenza di 0,5 secondi. Ti viene dato automaticamente, in modo che quando si riattiva, il tempo rimanente continua.
Quando dovresti usare NSTimer
per eseguire le funzioni del timer? Ogni volta che si dispone di qualcosa che deve essere SKScene
al di fuori dell'ambiente SKScene
, e deve anche essere SKScene
anche quando la scena è in pausa, o deve sparare a una velocità costante anche quando la velocità della scena cambia.
Questo è utilizzato al meglio quando si lavora con entrambe le UIKit
controlli e SpriteKit
controlli. Poiché UIKit
non ha idea di cosa succede con SpriteKit
, i NSTimer
s si NSTimer
indipendentemente dallo stato di SKScene
. Un esempio potrebbe essere un UILabel
che riceve un aggiornamento ogni secondo, e ha bisogno di dati dall'interno di SKScene
.
Implementare un metodo che si attiva dopo un secondo
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)