`
wangzy_boy
  • 浏览: 96380 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sdk3.2升级到4.0,支持多线程cocos2d遇到问题的解决办法

阅读更多
- (void) swapBuffers
{
	// IMPORTANT:
	// - preconditions
	//	-> _context MUST be the OpenGL context
	//	-> _renderBuffer must be the the RENDER BUFFER

#ifdef __IPHONE_4_0
	if( _depthFormat && _discardFramebufferSupported ) {
		GLenum attachments[] = { GL_DEPTH_ATTACHMENT_OES };
		glDiscardFramebufferEXT(GL_FRAMEBUFFER_OES, 1, attachments);
	}
#endif // __IPHONE_4_0
	
	if(![_context presentRenderbuffer:GL_RENDERBUFFER_OES])
		CCLOG(@"cocos2d: Failed to swap renderbuffer in %s\n", __FUNCTION__);

#if COCOS2D_DEBUG
	CHECK_GL_ERROR();
#endif	
}

 

sdk升级到4.0后,cocos2d的上面的函数的

if(![_context presentRenderbuffer:GL_RENDERBUFFER_OES])

这句在按home推出时会报错,导致不可以实现多线程,解决办法是修改delegate的函数如下

- (void)applicationWillResignActive:(UIApplication *)application {
        [[CCDirector sharedDirector] stopAnimation];
	[[CCDirector sharedDirector] pause];
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
        [[CCDirector sharedDirector] stopAnimation]; 
	[[CCDirector sharedDirector] resume];
	[[CCDirector sharedDirector] startAnimation];
}
 

并增加两个函数

- (void)applicationWillEnterForeground:(UIApplication *)application
{
	[[CCDirector sharedDirector] startAnimation];
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
        [[CCDirector sharedDirector] stopAnimation];
	[[CCDirector sharedDirector] pause];
}

 这样修改完成后,就不会出错了,按home键程序处于刮起挂起状态,再切会来是,程序保持在推出之前的状态

iphone的多线程虽说技术上实现的不是很完美,但效果确实很不错,希望下一个版本的多线程能做的更好,期待阿...

 

 

 

 

 

 

分享到:
评论

相关推荐

    Cocos2d-Android架包

    总的来说,Cocos2d-Android架包是一个全面的游戏开发解决方案,它涵盖了从地图设计到游戏逻辑实现的各个层面,旨在帮助开发者快速构建高质量的2D Android游戏。通过学习和掌握这个框架,开发者可以大大提高游戏开发...

    cocos2d-x手机游戏开发 源代码

    10. **性能优化**:提供多线程支持,以及内存管理和垃圾回收机制。 在《cocos2d-x 手机游戏开发》一书中,作者徐松林可能会涵盖以下主题: 1. **环境配置**:如何安装和配置Cocos2d-x开发环境,包括编译器、NDK、...

    Cocos2d-x 3.X游戏开发实战 (肖文吉) 完整pdf

    Cocos2d-x是一个开源的游戏开发框架,广泛应用于跨平台的2D游戏制作,支持iOS、Android、Windows等多个操作系统。 本书主要涵盖了以下关键知识点: 1. **Cocos2d-x框架介绍**:Cocos2d-x是基于C++的,但同时也提供...

    cocos2d-x-3.16.zip

    cocos2d-x 3.16还支持网络通信、多线程、多语言、社交分享等功能,开发者可以根据需求扩展游戏功能。此外,社区提供了大量的插件和教程,帮助开发者解决实际问题。 总结,cocos2d-x 3.16是一款强大的2D游戏开发框架...

    cocos2d android-1

    然后,通过Android Studio的Gradle系统设置Cocos2d Android的依赖项,并配置相应的NDK支持。 2. **项目初始化**:创建一个新的Cocos2d Android项目通常涉及到使用Cocos Creator或者Cocos Console来生成项目模板。这...

    Cocos2d-x高级开发教程.

    《Cocos2d-x高级开发教程》是一本深入解析Cocos2d-x游戏引擎的教程,专为希望提升Cocos2d-x技能的开发者而设计。Cocos2d-x是一款跨平台、开源的游戏开发框架,它基于C++,并支持多种编程语言,如Lua和JavaScript。本...

    JNI(c++与Java互调)cocos2d-x_3.x和android studio 3.0

    8. **优化与性能**:使用JNI的主要原因是提升性能,因此在C++代码中,注意优化算法,减少不必要的内存分配和释放,以及利用多线程提高计算密集型任务的执行效率。 总结,JNI在cocos2d-x与Android Studio结合开发中...

    知易经典cocos2d开发教程

    Cocos2d是一个广泛使用的开源游戏开发框架,它支持多种平台,包括iOS、Android以及桌面系统。这个教程以循序渐进的方式讲解,确保学习过程既高效又有趣。 首先,教程会从安装和配置Cocos2d环境开始,介绍如何在不同...

    IOS应用源码——zootella-cocos2d-abfc8f6.rar

    【标题】"IOS应用源码——zootella-cocos2d-abfc8f6.rar" 涉及的核心知识点是iOS应用开发以及Cocos2D游戏引擎的使用。Cocos2D是一个开源的2D游戏开发框架,广泛应用于iOS、Android等平台,尤其在创建动画和游戏场景...

    一个ios找茬游戏源码(未使用cocos2d).zip

    这个压缩包文件“一个ios找茬游戏源码(未使用cocos2d).zip”包含了一个iOS平台上的找茬游戏的完整源代码,值得注意的是,这款游戏的开发并没有使用广泛流行的Cocos2d游戏引擎。这表明开发者可能选择了其他的游戏...

    MagicTools引擎(d3d与opengles渲染器,集成cocos2d)

    MagicTools引擎,包括3d场景,材质,d3d与opengles两个渲染器,max导出插件,集成了cocos2d作为ui。 引擎架构如下: 1.MtFoundation:底层数学库、字符串处理、操作系统和编译器宏定义等底层封装库。这些功能放在了...

    iOS游戏应用源代码——mefistody-FlashToCocos2D.zip

    这个压缩包可能包含了一个使用Cocos2D-iOS引擎将Flash内容移植到iOS平台上的游戏项目的完整源代码。 【Cocos2D-iOS】是Cocos2D系列的一个分支,是一个广泛使用的开源游戏开发框架,特别适合2D游戏的构建。它提供了...

    COCOS2DX实现线程后台运作与推送

    在COCOS2DX中,可以使用`cocos2d::Director::getInstance()->getScheduler()`来创建和管理线程。通过调度器,开发者可以安排任务在线程中异步执行,避免阻塞主线程,从而保证UI的流畅性。使用`scheduleOnce`或`...

    cocos2dx-win8-Cocos2dx-2.1.0-wp8-2.0-alpha

    Cocos2dx-win8-Cocos2dx-2.1.0-wp8-2.0-alpha 是一个针对Windows Phone 8平台的Cocos2d-x框架的特定版本。Cocos2d-x是一款开源的游戏开发框架,它基于C++,并提供了Python、Lua等多种脚本语言接口,让开发者能够高效...

    Babelua 2015

    【Babelua 2015】是一款专为Visual Studio 2015设计的扩展工具,它使得开发者能够在VS2015的环境中对基于Cocos2d-x引擎的Lua脚本进行断点调试,极大地提升了开发效率和问题定位的准确性。Cocos2d-x是一个流行的开源...

    UnifyIt:基于cocos2d-x 3.8的游戏

    《UnifyIt:基于cocos2d-x 3.8的游戏开发详解》 在游戏开发领域,cocos2d-x是一个广泛使用的开源游戏引擎,它允许开发者使用C++、JavaScript和Lua等多种语言来构建跨平台的游戏。本篇将深入探讨基于cocos2d-x 3.8...

    DesenvolvimentodeJogosparaAndroidExploresuaimaginacaocomoframewo

    要使用Cocos2D开发Android游戏,首先需要在Android Studio中安装相应的SDK和NDK,以及Cocos2D-Android的依赖库。创建一个新的Android项目后,导入Cocos2D-Android的源代码,设置项目的build.gradle文件,确保所有...

    游戏开发代码

    12. **Android游戏开发**:在Android平台上开发游戏,除了使用Cocos2D之外,还需要了解Android SDK、Android Studio以及Java或Kotlin编程。开发者需要熟悉Android的生命周期、权限管理、多线程和性能优化等相关知识...

    Cocos2dx入门初级教程

    Cocos2dx是一款开源的游戏开发框架,主要用于创建2D和3D游戏,动画以及各种图形交互应用。作为一款跨平台的开发工具,Cocos2dx支持iOS、Android、Windows、Mac等多个操作系统,使得开发者可以编写一次代码,到处运行...

    基于android的推箱子游戏的源代码.rar

    Cocos2d-x版本支持C++,而Cocos2d-JS则支持JavaScript,但在这个案例中,由于标签提及“java”,我们可以推断开发者可能使用了Cocos2d-Android,这是Cocos2d的一个Java实现。Cocos2d-Android提供了丰富的图形绘制、...

Global site tag (gtag.js) - Google Analytics