Имам „брояч на живот“ в моята игра и когато удари 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