block实现场景切换
来源:互联网 发布:宇宙大小的相关数据 编辑:程序博客网 时间:2024/04/27 05:54
1 loadingLayer=[LoadingLayernode];
2
3 谛力泰克网:app定制http://www.dilitech.com
4 [self addChild:loadingLayer];
5 dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
6 dispatch_async(queue, ^{
7 //声明一个Pool来自动管理指针
8 NSAutoreleasePool *autoreleasepool =[[NSAutoreleasePool alloc] init];
9
10 //加锁保护,并保证与Cocos2d本身的异步加载函数本身不冲突
11 //也就是保护ShareGroup不被同时修改
12 // [[CCTextureCachesharedTextureCache].contextLock lock];
13
14 //auxGLcontext必须是static
15 //
16 if( auxGLcontext == nil ) {
17 //新建一个EAGLContext然后与已经生成与使用的OpenGL公用一个ShareGroup
18 auxGLcontext = [[EAGLContextalloc]initWithAPI:kEAGLRenderingAPIOpenGLES1 sharegroup:[[[[CCDirectorsharedDirector] openGLView] context] sharegroup]];
19
20 //检查是否
21 if( ! auxGLcontext )CCLOG(@"cocos2d: TextureCache: Could not create EAGL context");
22 }
23
24 CCScene *scene;
25
26 //设置Context,拥有修改权利,接下来我们就可以正常的使用我们生成我们自己的Scene了
27 if( [EAGLContextsetCurrentContext:auxGLcontext] ) {
28 //初始化
29 scene = [LevelController scene];
30 [[CCDirector sharedDirector]replaceScene:scene];
31 }
32
33 //回到主线程,保留并解锁,然后等等主线程接收方响应并开始切换场景
34 dispatch_async(dispatch_get_main_queue(),^{
35 //防止指针丢失
36 // nextScene = [scene retain];
37 //lock用来判断scene是否生存完
38 // lock = NO;
39 });
40
41 //恢复
42 [EAGLContext setCurrentContext:nil];
43 // [[CCTextureCachesharedTextureCache].contextLock unlock];
44 [autoreleasepool release];
45 });
复制代码
如果用下列常规方式回出现场景图片与动画均显示不了的问题
46 loadingLayer=[LoadingLayernode];
47 [self addChild:loadingLayer];
48 dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
49 dispatch_async(queue, ^{
50 CCScene *levelScene = [LevelControllerscene];
51 [[CCDirector sharedDirector]replaceScene:levelScene];
52 dispatch_async(dispatch_get_main_queue(),^{
53 [loadingLayer removeFromParentAndCleanup:YES];
54 });
55 });
复制代码
文章出处:谛力泰克网 app开发 http://www.dilitech.com
- block实现场景切换
- 实现场景的切换
- Cocos2d-X实现场景切换
- 使用replaceScene实现场景切换
- cocos2d-x实现场景切换效果
- Unity实现 场景切换 音乐不断
- Unity实现场景切换的方法
- Unity实现场景切换的方法
- 用application实现场景的切换
- Unity实现场景切换的方法
- unity中实现异步切换场景
- 切换场景
- 场景切换
- 场景切换
- 场景切换
- 场景切换
- 切换场景
- Block的应用场景
- 养成好的编程习惯之对称性
- Video Module的一个bug
- linux awk
- phpcms v9 企业黄页模块注册企业时的主营行业无法选择的解决办法
- 通过SQL语句添加各种约束 SQLSERVER
- block实现场景切换
- SSI tomcat 配置
- 查看表空间使用情况
- uboot/linux/busybox/yaffs2源代码下载地址
- 图片格式与设计那点事儿
- Android的系统构架
- export symbol 与 export symbol gpl
- with..as oracle的用法
- 1~19这19个数字,任意多个数相加等于20的所有组合,不重复(递归)