我正在使用cocos2D游戏引擎。经过几次重播,游戏场景开始闪烁,精灵根本不动。但随着玩家离开,精灵的位置会随之移动。每个函数都被调用。但没有出现。我通过仪器检查了内存消耗。内存消耗很好。任何帮助表示赞赏。 提前谢谢。
这是我结束游戏时使用的代码。
[[CCDirector sharedDirector].openGLView removeFromSuperview];
[[CCDirector sharedDirector] stopAnimation];
[[CCDirector sharedDirector] end];
这是我在重新加载游戏场景时使用的代码。
if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] )
[CCDirector setDirectorType:kCCDirectorTypeDefault];
CCDirector *director = [CCDirector sharedDirector];
viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
viewController.wantsFullScreenLayout = YES;
EAGLView *glView = [[EAGLView alloc] initWithFrame:[window bounds]];
[director setOpenGLView:glView];
if( ! [director enableRetinaDisplay:YES] )
CCLOG(@"Retina Display Not supported");
[director setDeviceOrientation:kCCDeviceOrientationLandscapeRight];
[viewController setView:glView];
[window addSubview: viewController.view];
[window makeKeyAndVisible];
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
[[CCDirector sharedDirector] runWithScene: [HelloWorldLayer node]];
答案 0 :(得分:2)
我一直在重复自己的建议,所以我把它放在引号中:
如果您在Cocoa touch应用程序中使用cocos2d,请执行不删除并重新创建OpenGL视图。创建一次,并保持它。也不要完全关闭cocos2d。只调用stopAnimation和startAnimation。如果内存非常低,请在停止cocos2d并返回应用程序的Cocoa touch部分之前,将当前cocos2d场景替换为空场景。
不遵循此建议的开发人员会遇到各种问题。可能是因为cocos2d在各种条件下都没有经过反复关机和重启循环的良好测试。