gpt4 book ai didi

objective-c - 有大量资源的应用程序加载缓慢

转载 作者:行者123 更新时间:2023-12-01 16:52:56 24 4
gpt4 key购买 nike

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

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

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

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

    最佳答案

    在 cocos2d 游戏中使用线程加载。确保在使用新加载的资源之前加载了资源一定的阈值。 Here is my own question and solved now. 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];
    }

    关于objective-c - 有大量资源的应用程序加载缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206847/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com