我无法理解为什么我的应用程序拥有大量资源需要很长时间才能启动(不加载资源。程序在启动时不会加载很多资源)。
澄清(我这样做是为了确认问题与我的资源包中的资源数量有关):
这是预期的行为吗?为什么会有区别?
答案 0 :(得分:0)
在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];
}