Pergunta

Como faço isso?

Em um dos meus UIViews (arquivo NIB) eu tenho ImageView e um botão que inicia a cena de tela cheia de tela.De dentro dessa cena eu quero fechá-lo e voltar ao UIView, para que o usuário possa mais tarde Abra a cena novamente mas de imagem diferente no ImageView (e com conteúdo diferente na cena).

No entanto, após a primeira vez que eu "fecho" a cena todo o aplicativo reage muito mais lento para todos os eventos de toque.Funciona rápido desde que a cena esteja ligada, mas quando fechada, então o desempenho cai.

Como devo fechar corretamente a cena para que eu possa reiniciá-la novamente?Eu navegei através de muitas amostras de código e em todos os lugares é apenas replaceWithScene:newScene.

Foi útil?

Solução

Adding a UIView to a viewController that houses a running openGL layer slows the app, as anyone who has tried to incorporate a UIScrollView into a Cocos2D game can tell you. You are closing the scene, but likely not stopping the CCDirector, which is now running its own scheduler aside the application's scheduler. As they fight for dominance over the CPU, OpenGL invariably wins as it needs more power more often.

Ensure you are completely shutting down cocos2D and OpenGL. Even if only calling [[CCDirector sharedDirector] pause].

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top