感谢您的帮助和阅读本文。
这是我的来源:Download_Cocos2d_Continuous_Scrolling_Tile_Based_Game
其基于连续滚动瓷砖的 cocos2D 游戏。在这个游戏中,tileMaps 是根据需要加载和释放的——第三个瓦片地图是在第一个释放的时候加载的。重复相同的过程。由于加载时间,观察到磁贴滚动中的一些混蛋。所以我使用单独的线程来加载瓷砖地图。这导致屏幕出现奇怪的闪烁......仅在设备中。
- 我该如何修复这个闪光灯?
- 如何避免瓷砖滚动中的小混蛋?或任何替代加载方法?
这是加载代码:
[NSThread detachNewThreadSelector:@selector(loadTileMapInThread:) toTarget:self withObject:nil];
-(void)loadTileMapInThread:(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 LoadTilesMap];
glFlush(); //whn I comment this also..flash observed
[EAGLContext setCurrentContext:nil];
} else {
CCLOG(@"cocos2d: ERROR: TetureCache: Could not set EAGLContext");
}
[auxGLcontext release];
[autoreleasepool release];
}