iPhone - démarrage de la scène cocos2d à partir du viewcontroller, fermeture depuis la scène

StackOverflow https://stackoverflow.com/questions/5031455

  •  14-11-2019
  •  | 
  •  

Question

Comment puis-je faire cela?

Sur l'un de mes UIViews (fichier nib), j'ai ImageView et un bouton qui démarre la scène Cocos2d en plein écran.À partir de cette scène, je souhaite la fermer et revenir à UIView, afin que l'utilisateur puisse plus tard ouvrir à nouveau la scène mais à partir d'une image différente dans ImageView (et avec un contenu différent sur scène).

Cependant, après la première « fermeture » de la scène, l'ensemble de l'application réagit beaucoup plus lentement à tous les événements tactiles.Cela fonctionne rapidement tant que la scène est active, mais une fois fermé, les performances diminuent.

Comment dois-je fermer correctement la scène pour pouvoir la redémarrer ?J'ai parcouru de nombreux exemples de code et partout c'est juste replaceWithScene:newScene.

Était-ce utile?

La solution

L'ajout d'un UIView à un viewController qui héberge une couche openGL en cours d'exécution ralentit l'application, comme peut vous le dire toute personne ayant essayé d'incorporer un UIScrollView dans un jeu Cocos2D.Vous fermez la scène, mais vous n'arrêtez probablement pas CCDirector, qui exécute désormais son propre planificateur en plus du planificateur de l'application.Alors qu’ils se battent pour la domination du processeur, OpenGL gagne invariablement car il a besoin de plus de puissance plus souvent.

Assurez-vous de fermer complètement cocos2D et OpenGL.Même si vous n'appelez que [[CCDirector sharedDirector] pause].

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top