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)



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow