几次重放后,游戏场景开始闪烁

时间:2012-06-27 06:14:36

标签: iphone ios cocos2d-iphone

我正在使用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]];

1 个答案:

答案 0 :(得分:2)

我一直在重复自己的建议,所以我把它放在引号中:

  

如果您在Cocoa touch应用程序中使用cocos2d,请执行删除并重新创建OpenGL视图。创建一次,并保持它。也不要完全关闭cocos2d。只调用stopAnimation和startAnimation。如果内存非常低,请在停止cocos2d并返回应用程序的Cocoa touch部分之前,将当前cocos2d场景替换为空场景。

不遵循此建议的开发人员会遇到各种问题。可能是因为cocos2d在各种条件下都没有经过反复关机和重启循环的良好测试。