block实现场景切换

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值