2

我无法理解为什么我的拥有大量资源的应用程序需要很长时间才能启动(不加载资源。程序在启动时不会加载很多资源)。

为了澄清(我这样做是为了确认问题与我的资源包中的资源数量有关):

  1. 我创建了一个新的 cocos2d 项目。
  2. 然后我从新创建的项目中取出 helloWorldLayer 并将其放入 MY APP 中,该应用程序有很多资源(数千个小 png)。
  3. 然后在我的应用程序 appDelegate 中,我运行了这一层(场景),而不是通常加载的场景(本来应该是 MainMenu)。输出与 cocos2d 模板完全相同。cocos2d default.png 后跟“hello world”。
  4. 但是,MY APP 的启动时间比 cocos2d 项目要长得多,而且从 default.png 加载屏幕更改为实际代码(“Hello World”)也需要更长的时间;

这是预期的行为吗?为什么有区别?

4

1 回答 1

0

在 cocos2d 游戏中使用线程加载。确保在使用新加载的资源之前加载了资源一定的阈值。这是我自己的问题,现在解决了。cocos2d sdk中有一个线程示例..您也可以参考。

[NSThread detachNewThreadSelector:@selector(loadingThread:) toTarget:self withObject:nil];

-(void)loadingThread:(id)argument
{
    NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init];
    CCGLView *view = (CCGLView*)[[CCDirector sharedDirector] view];
    EAGLContext *auxGLcontext = [[EAGLContext alloc]
                                 initWithAPI:kEAGLRenderingAPIOpenGLES2
                                 sharegroup:[[view context] sharegroup]];

    if( [EAGLContext setCurrentContext:auxGLcontext] ) {

        [self loadGameResource];

        glFlush(); 

        [EAGLContext setCurrentContext:nil];
    } else {
        CCLOG(@"cocos2d: ERROR: TetureCache: Could not set EAGLContext");
    }

    [auxGLcontext release];

    [autoreleasepool release];
}
于 2013-01-08T04:55:49.147 回答