Я знаю, что Cocos2d 2.0 находится в альфа-версии и, очевидно, будет иметь определенные проблемы с ним.Я пытаюсь преобразовать несколько проектов для использования OpenGL 2.0 по нескольким причинам, но у меня возникла одна очень странная проблема.
Когда я запускаю сцену, мои текстуры загружаются по желанию, и все отлично работает.Затем я отображаю некоторые элементы пользовательского интерфейса Apple, которые позволяют мне покинуть сцену.Сцена и ее контроллер представления освобождены, директору говорят закончить, и я возвращаюсь к другому представлению.Затем я нажимаю кнопку UIB, которая снова запускает сцену.Сцена начинается снова и запускается, но текстур не видно.Шрифты загружаются и отображаются, аудио загружается и воспроизводится, но текстур не видно.При выводе информации из CCTextureCache я вижу, что требуемые текстуры доступны в кэше ([[CCTextureCache sharedTextureCache] dumpCachedTextureInfo]).Я также попытался очистить кэш до того, как сцена была возобновлена.Несмотря ни на что, я не вижу текстур и не добавляю узлы на сцену.
Возможно, что-то не так с тем, как я перезагружаю сцену или как настраивается EAGLView.Вот код для запуска указанной сцены из контроллера вида: </p>
<p>(void)startGame {</p>
<pre><code>CCDirector *director = [CCDirector sharedDirector];
EAGLView *glView = [EAGLView viewWithFrame:[self.view bounds]];
[director setOpenGLView:glView];
[self setView:glView];
[[CCTextureCache sharedTextureCache] removeUnusedTextures];
//[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
[[CCDirector sharedDirector] runWithScene:[Cocos2DChipmunkScene scene]];
}
Затем сцена завершается и вызывается следующее:
CCDirector *director = [CCDirector sharedDirector]; </p>
<p>[[director openGLView] removeFromSuperview];</p>
<p>[director end];<br>
Приведенный выше метод startGame вызывается снова, когда я пытаюсь запустить игру снова.В этот момент текстуры не отображаются.
Дайте мне знать, если мне нужно предоставить более подробную информацию по этому вопросу.