2015-07-13 3 views
3

У меня есть действие икры, и я использовал NSTimer, чтобы создать его, но я изменил его на SKAction, так что он остановится, когда сцена паузы:SpriteKit SKAction лаг паузы

let SpawnAction = SKAction.sequence([SKAction.waitForDuration(0.5), SKAction.runBlock(Spawn)]) 
self.runAction(SKAction.repeatActionForever(SpawnAction)) 

Теперь проблема отставание, которое существует на части кода, я думаю, так как это не сработает сразу после того, как сцена будет приостановлена.

Это код, я использую, чтобы сделать паузу/возобновлять игру:

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 

    for touch in (touches as! Set<UITouch>) { 
     let location = touch.locationInNode(self) 
     let node = self.nodeAtPoint(location) 
     if (node.name == "Pause") { 
      PauseLabel.removeFromParent() 
      self.addChild(ResumeLabel) 
      self.runAction(SKAction.runBlock(self.pauseGame)) 
     } 
     else if (node.name == "Resume") { 
      self.view!.paused = false 
      self.addChild(PauseLabel) 
      ResumeLabel.removeFromParent() 
     } 
     else { 
      //Other code... 
     } 
    } 
} 

func pauseGame() { 
    self.view!.paused = true 
} 

Я хотел бы кто-нибудь сказать мне, как правильно сделать паузу/возобновлять в SpriteKit игру, как и все методы, которые я получил из Интернета не работает должным образом для меня. Спасибо.

+2

http://stackoverflow.com/questions/23381088/difference-between-paused-property-of-skscene-and-skview – ZeMoon

+0

Спасибо! Я всегда думал, что «self.view.paused» - это метод использования в SpriteKit, но «self.paused», похоже, работает намного лучше. –

ответ

0

Я не уверен, что это сработает для вас. но под didMoveToView функции в пределах выбранного обработчика кнопки я использую, чтобы сделать паузу:

я использовал self.gameState = .Pause
, а также используются self.physicsWorld.speed = 0

это как остановить вид игры и physicsworld помогает остановить любого из skactions который может работать на ваших спрайтах.

надеюсь, что это вам поможет.

Смежные вопросы