sprite-kit
Funkcje czasowe w SpriteKit: SKActions vs NSTimers
Szukaj…
Uwagi
Kiedy należy używać SKAction s do wykonywania funkcji timera? Prawie zawsze. Powodem tego jest to, że Sprite Kit działa w interwale aktualizacji, a szybkość tego interwału można zmieniać przez cały czas życia procesu za pomocą właściwości speed . Sceny można również wstrzymać. Ponieważ SKAction działa wewnątrz sceny, po zmianie tych właściwości nie ma potrzeby zmiany funkcji czasu. Jeśli Twoja scena trwa 0,5 sekundy, a wstrzymasz scenę, nie musisz zatrzymywać żadnych timerów i zachować tej 0,5-sekundowej różnicy. Otrzymuje się go automatycznie, aby po wstrzymaniu pozostały czas był kontynuowany.
Kiedy należy używać NSTimer s do wykonywania funkcji timera? Ilekroć masz coś, co musi być SKScene poza środowiskiem SKScene , a także musi zostać wystrzelone, nawet gdy scena jest zatrzymana lub musi strzelać ze stałą prędkością, nawet gdy zmienia się szybkość sceny.
Jest to najlepiej stosowane podczas pracy zarówno z kontrolkami UIKit jak i SpriteKit . Ponieważ UIKit nie ma pojęcia o tym, co się dzieje z SpriteKit , NSTimer s będzie strzelał niezależnie od stanu SKScene . Przykładem może być UILabel który co sekundę otrzymuje aktualizację i potrzebuje danych z Twojego SKScene .
Wdrożenie metody, która uruchamia się po jednej sekundzie
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)