Sök…


Anmärkningar

När ska du använda SKAction att utföra timerfunktioner? Nästan alltid. Anledningen till detta är att Sprite Kit arbetar med ett uppdateringsintervall, och hastigheten på detta intervall kan ändras under hela livslängden för processen med hjälp av speed . Scener kan också pausas också. Eftersom SKAction arbetar inuti scenen behöver du inte ändra dina tidsfunktioner när du ändrar dessa egenskaper. Om din scen är 0,5 sekunder in i processen och du pausar scenen behöver du inte stoppa några tidtagare och behålla den 0,5 sekunders skillnaden. Det ges till dig automatiskt, så att när du avbryter pausen, återstår tiden kvar.

När ska du använda NSTimer att utföra timerfunktioner? När du har något som måste tidsinställas utanför SKScene miljön, och som också måste avfyras även när scenen är pausad, eller behöver avfyras i konstant takt även när scenhastigheten ändras.

Detta används bäst när du arbetar med både UIKit kontroller och SpriteKit kontroller. Eftersom UIKit har någon aning om vad som händer med SpriteKit kommer NSTimer att skjuta oavsett SKScene . Ett exempel skulle vara att vi har en UILabel som får en uppdatering varje sekund, och den behöver data inifrån din SKScene .

Implementera en metod som avfyras efter en sekund

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)



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow