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)