Eu tenho um "contador de vida" no meu jogo e quandobate 0 = morto - eu quero me afastar da cena para outro UIView - que é game over view - com estatísticas e um botão para voltar para a tela inicial (primeiro UIViewController com botões para iniciar o jogo e assim por diante.
Aqui está o código de como eu mudo para a exibição 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)
}
}
}
Isso funciona para apresentar o jogo sobre a visão, mas o que eu acho que eu não estou "descartando" ou redefinindo a cena, porque se eu fizer isso em um loop:
Iniciar jogo -> Game Over -> Voltar para a tela inicial -> Iniciar jogo -> Game Over ....
Eu vejo o uso de memória cresce em cada ciclo :) Eu acho que estou apenas adicionando cenas, mas não removê-los?
Eu sinto muito - eu estou fresco para isso. Ficará muito grato pela sua experiência! :)
Respostas:
2 para resposta № 1Para gerir eficazmente a sua memória Sprite-Kit
, você deve criar outro SKScene
para o seu ecrã GameOver ser apresentado a partir do seu ecrã principal. Desta forma, o antigo SKScene seria lançado.