sprite-kit
SpriteKit의 시간 함수 : SKActions와 NSTimers 비교
수색…
비고
SKAction
을 사용하여 타이머 기능을 수행 SKAction
시기는 언제입니까? 거의 언제나. 그 이유는 Sprite Kit
가 업데이트 간격으로 작동하고이 간격의 speed
속성을 사용하는 프로세스의 수명 기간 동안 변경 될 수 있기 때문입니다. 장면을 일시 중지 할 수도 있습니다. 장면 내에서 SKAction
작동하기 때문에 이러한 속성을 변경하면 시간 기능을 변경할 필요가 없습니다. 장면이 0.5 초 동안 진행 중이며 장면을 일시 중지하면 타이머를 중지하고 0.5 초의 차이를 유지할 필요가 없습니다. 일시 중지하면 남은 시간이 계속 유지되도록 자동으로 주어집니다.
언제 타이머 기능을 수행하기 위해 NSTimer
를 사용해야합니까? SKScene
환경 밖에서 시간을 측정해야 할 필요가있을 때마다 장면이 일시 정지 된 경우에도 해고되어야하거나 장면 속도가 변경되는 경우에도 일정한 속도로 실행해야합니다.
이것은 UIKit
컨트롤과 SpriteKit
컨트롤을 모두 사용하여 작업 할 때 가장 SpriteKit
합니다. UIKit
은 SpriteKit
어떤 일이 일어나는지 전혀 알지 못하기 때문에 NSTimer
는 SKScene
의 상태에 관계없이 SKScene
됩니다. 예를 들어 매 초마다 업데이트를 수신하는 UILabel
이 있으며 SKScene
내부의 데이터가 필요합니다.
1 초 후에 발생하는 메소드 구현하기
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)