【发布时间】:2025-12-26 03:10:06
【问题描述】:
我知道 Cocos2d 2.0 处于 alpha 阶段,显然会有一些问题。出于多种原因,我正在尝试将多个项目转换为使用 OpenGL 2.0,但遇到了一个非常奇怪的问题。
当我启动一个场景时,我的纹理会根据需要加载,并且一切正常。然后我会显示一些允许我退出场景的 Apple UI 元素。场景及其视图控制器被释放,导演被告知结束,我返回另一个视图。然后我按下 UIButton 再次启动场景。场景重新开始并运行,但看不到任何纹理。字体加载和显示,音频加载和播放,但纹理不可见。从 CCTextureCache 转储信息时,我可以看到所需的纹理在缓存中可用( [[CCTextureCache sharedTextureCache] dumpCachedTextureInfo] )。我还尝试在重新启动场景之前清除缓存。无论如何,我看不到任何纹理或向场景添加节点。
我如何重置场景或如何设置 EAGLView 可能有问题。这是从视图控制器启动所述场景的代码:
(void)startGame {
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];
[[导演 openGLView] removeFromSuperview];
[导演结束];
当我再次尝试启动游戏时,会再次调用上述 startGame 方法。这是不显示纹理的地方。
如果我需要提供有关此问题的更多详细信息,请告诉我。
【问题讨论】:
标签: iphone cocos2d-iphone opengl-es-2.0