Va bene, quindi ho un gioco di kit sprite in Swift qui e ho problemi a riavviare il GameScene dopo il game over.Swift, spritekit: come riavviare GameScene dopo il gioco? Smettere di ritardare?
In questo momento, quando l'utente perde tutta la sua vita, una variabile gameIsOver
è impostata su true
, che mette in pausa nodi specifici all'interno della scena e imposta un timer. Dopo che questo timer termina, passo alla scena Game Over. Dalla scena Game Over, l'utente può tornare a casa o riavviare il gioco.
ecco come lo transizione al mio gioco sopra scena:
countdown(circle, steps: 120, duration: 5) {
//Performed when timer ends
self.gameSoundTrack.stop()
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc = mainStoryboard.instantiateViewControllerWithIdentifier("GOViewController")
self.viewController!.presentViewController(vc, animated: true, completion: nil)
//Resetting GameScene
self.removeAllChildren()
self.removeAllActions()
self.scene?.removeFromParent()
self.paused = true
gameIsOver = false
}
mi soffermo la mia scena qui è perché, se non lo faccio, quando viene ricaricato GameScene gameIsOver
è ancora impostato su true
ei miei crash app . Non so perché ciò si verifica considerando che ho impostato gameIsOver
a false
qui.
Dopo il passaggio da GameScene al mio gioco sulla scena e ritorno a GameScene, o da GameScene al mio controller di visualizzazione di casa e ritorno a GameScene un paio di volte, il mio numero di fps è diminuito così tanto che l'intero gioco è in ritardo dove il gameplay è impossibile.
Questo mi porta a credere che non sto rimuovendo/eliminando GameScene correttamente ogni volta che presento il mio gioco sulla scena.
Credo di avere lo stesso problema di questo: In Swift on "game over" move from scene to another UIView and dispose the scene?, ma sono nuovo di questo e non riesco a capire come hanno risolto il loro problema.
Come posso ripristinare/eliminare completamente GameScene ogni volta che presento la mia scena Game Over per fermare il ritardo?
oh, quindi non c'è niente di sbagliato nel farlo? ri-chiamare la stessa scena più e più volte? Wow. Ho pensato che sarebbe stato un po '"pesante" per il motore di gioco. – msqar
No, creerà una nuova scena e non si attaccherà alla scena precedente. Se si stesse utilizzando un controller di navigazione e si utilizza segues sarebbe diverso. Assicurati di contrassegnare la risposta come corretta se ti ha aiutato. –
non sono il proprietario del post :(sfortunatamente non posso darti il segno, ma tu mi hai aiutato con quello che ti ha dato il voto positivo – msqar