У меня есть «счетчик жизней» в моей игре, и когда он достигает 0 = мертвый — я хочу перейти от сцены к другому UIView — который является просмотром игры — со статистикой и кнопкой, чтобы вернуться на главный экран (сначала UIViewController с кнопками для запуска игры и так далее.
Вот код того, как я перехожу к представлению Game Over
class GameScene: SKScene,SKPhysicsContactDelegate {
var viewController: UIViewController?
// more code and functions
// ......
func trackLife (lifeCHange: Int){
life = life + lifeCHange
lifeLabel.text = String(life)
if life < 1 {
// Go to Game Over VC
self.removeAllChildren()
self.removeAllActions()
self.scene?.removeFromParent()
self.viewController!.performSegueWithIdentifier("gameOverSegue", sender: viewController)
}
}
}
это работает для представления игры поверх просмотра, но я думаю, что я не «удаляю» или не сбрасываю сцену. потому что если я сделаю это в цикле:
Начать игру --> Игра окончена --> Вернуться на главный экран --> Начать игру --> Игра окончена....
Я вижу, что использование памяти растет с каждым циклом :) Я думаю, я просто добавляю сцены, а не удаляю их?
Извините - я новичок в этом. Будем очень признательны за ваш опыт! :)
dismissViewControllerAnimated
илиpopViewControllerAnimated
, в зависимости от того, используете ли вы NavigationController. Если вы хотите выполнить сброс, в зависимости от того, какое свойство содержит исходный домашний ViewController (window.rootViewController
, если это ваш первоначальный viewController, или свойство viewControllers NavigationController), вы можете просто перезаписать его новым домашним ViewController. - person SolaWing   schedule 24.05.2015scene
, используя методpresentScene
наSKView
. Взгляните на это - person ABakerSmith   schedule 24.05.2015keyWindow
свойство sharedApplication. Решение @ABakerSmith может быть лучше. так как я не знаком со SpriteKit. - person SolaWing   schedule 24.05.2015