Con el siguiente código crearemos facilmente un contador de tiempo en milisegundos que nos servirá para poder guardar el tiempo que ha durado la partida del jugador.
En primer lugar, debemos tener una variable para almacenar los milisegundos, una Label donde mostrarlo durante la partida y un booleano para controlar cuando se acaba el juego:
var scoreNode = SKLabelNode()
var miliseconds = 0
var isGameOver = false
Editad las propiedades del Label para configurar la fuente, la posicion, etc. Asignar el texto inicial al contador a cero, en mi caso:
scoreNode.text = "0 : 00 : 000"
En segundo lugar, insertaremos este código en nuestra escena, normalmente en “didMoveToView”:
let actionRun = SKAction.runBlock({ () -> Void in
if !self.isGameOver {
self.miliseconds++
self.scoreNode.text = String(format:"%3d : %02d : %03d", Int((self.miliseconds/1000)/60) , Int((self.miliseconds/1000)%60), Int(self.miliseconds%1000))
}
})
self.scoreNode.runAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.waitForDuration(0.001), actionRun])))
Básicamente lo que hacemos es ejecutar una accion que añade un milisegundo, y esa accion se realiza cada milisegundo, mostrando el resultado en pantalla.
Nota: Cuando la partida termine, debemos asignar el valor isGameOver a verdadero para que el contador pare.
isGameOver = true
No Responses