2017-09-27 2 views
0

J'utilise SpriteKit et actuellement à l'utilisateur d'ouvrir l'application à un écran d'atterrissage qui signe l'utilisateur dans GameCenter et des charges importantes données de jeu qui sera affiché dans la scène de menu suivant (nom d'affichage, niveau, etc.)Comment puis-je changer de scène SpriteKit après le chargement des données et m'assurer que GameCenter se connecte correctement?

Comment puis-je vérifier que tout se charge avant de passer à la scène suivante?

J'ai essayé de tester en utilisant une version simplifiée ci-dessous, mais il n'a jamais semblé être exécuté en dépit d'être dans la fonction de mise à jour.

override func update(_ currentTime: CFTimeInterval) { 

    // This doesn't seem to ever be called. 
    if(GKLocalPlayer.localPlayer().isAuthenticated) { 
     let transition = SKTransition.fade(with: UIColor.clear, duration: 1.0) 
     let scene = Menu(size: (view?.bounds.size)!) 
     scene.scaleMode = .aspectFill 
     self.view?.presentScene(scene, transition: transition) 
     print("Changed to Menu scene") 
    } 

} 

Il est possible que ce que je suis à la recherche est une dépêche asynch pour afficher la scène du menu après les données appropriées peuvent être tirées et peuplées sur cette scène - et de montrer la scène d'atterrissage dans l'intervalle? Je ne suis pas tout à fait sûr comment cela fonctionne, ou si c'est même la bonne solution. Les conseils ici seraient grandement appréciés.

Mais pourquoi la fonction de mise à jour n'appelle-t-elle pas cela si test d'instruction?

Répondre

0

Pour quiconque lisant ceci - Le code ci-dessus fonctionne réellement sur un périphérique réel. Il s'avère que cela ne marche PAS sur le simulateur.

+0

Vous devez réinitialiser votre compte de centre de jeu dans le simulateur pour le faire fonctionner. Vous avez probablement été refusé 3 fois en effectuant vos différents tests, donc il a décliné définitivement – Knight0fDragon