- (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架包是一个全面的游戏开发解决方案,它涵盖了从地图设计到游戏逻辑实现的各个层面,旨在帮助开发者快速构建高质量的2D Android游戏。通过学习和掌握这个框架,开发者可以大大提高游戏开发...
10. **性能优化**:提供多线程支持,以及内存管理和垃圾回收机制。 在《cocos2d-x 手机游戏开发》一书中,作者徐松林可能会涵盖以下主题: 1. **环境配置**:如何安装和配置Cocos2d-x开发环境,包括编译器、NDK、...
Cocos2d-x是一个开源的游戏开发框架,广泛应用于跨平台的2D游戏制作,支持iOS、Android、Windows等多个操作系统。 本书主要涵盖了以下关键知识点: 1. **Cocos2d-x框架介绍**:Cocos2d-x是基于C++的,但同时也提供...
cocos2d-x 3.16还支持网络通信、多线程、多语言、社交分享等功能,开发者可以根据需求扩展游戏功能。此外,社区提供了大量的插件和教程,帮助开发者解决实际问题。 总结,cocos2d-x 3.16是一款强大的2D游戏开发框架...
然后,通过Android Studio的Gradle系统设置Cocos2d Android的依赖项,并配置相应的NDK支持。 2. **项目初始化**:创建一个新的Cocos2d Android项目通常涉及到使用Cocos Creator或者Cocos Console来生成项目模板。这...
《Cocos2d-x高级开发教程》是一本深入解析Cocos2d-x游戏引擎的教程,专为希望提升Cocos2d-x技能的开发者而设计。Cocos2d-x是一款跨平台、开源的游戏开发框架,它基于C++,并支持多种编程语言,如Lua和JavaScript。本...
8. **优化与性能**:使用JNI的主要原因是提升性能,因此在C++代码中,注意优化算法,减少不必要的内存分配和释放,以及利用多线程提高计算密集型任务的执行效率。 总结,JNI在cocos2d-x与Android Studio结合开发中...
Cocos2d是一个广泛使用的开源游戏开发框架,它支持多种平台,包括iOS、Android以及桌面系统。这个教程以循序渐进的方式讲解,确保学习过程既高效又有趣。 首先,教程会从安装和配置Cocos2d环境开始,介绍如何在不同...
【标题】"IOS应用源码——zootella-cocos2d-abfc8f6.rar" 涉及的核心知识点是iOS应用开发以及Cocos2D游戏引擎的使用。Cocos2D是一个开源的2D游戏开发框架,广泛应用于iOS、Android等平台,尤其在创建动画和游戏场景...
这个压缩包文件“一个ios找茬游戏源码(未使用cocos2d).zip”包含了一个iOS平台上的找茬游戏的完整源代码,值得注意的是,这款游戏的开发并没有使用广泛流行的Cocos2d游戏引擎。这表明开发者可能选择了其他的游戏...
MagicTools引擎,包括3d场景,材质,d3d与opengles两个渲染器,max导出插件,集成了cocos2d作为ui。 引擎架构如下: 1.MtFoundation:底层数学库、字符串处理、操作系统和编译器宏定义等底层封装库。这些功能放在了...
这个压缩包可能包含了一个使用Cocos2D-iOS引擎将Flash内容移植到iOS平台上的游戏项目的完整源代码。 【Cocos2D-iOS】是Cocos2D系列的一个分支,是一个广泛使用的开源游戏开发框架,特别适合2D游戏的构建。它提供了...
在COCOS2DX中,可以使用`cocos2d::Director::getInstance()->getScheduler()`来创建和管理线程。通过调度器,开发者可以安排任务在线程中异步执行,避免阻塞主线程,从而保证UI的流畅性。使用`scheduleOnce`或`...
Cocos2dx-win8-Cocos2dx-2.1.0-wp8-2.0-alpha 是一个针对Windows Phone 8平台的Cocos2d-x框架的特定版本。Cocos2d-x是一款开源的游戏开发框架,它基于C++,并提供了Python、Lua等多种脚本语言接口,让开发者能够高效...
【Babelua 2015】是一款专为Visual Studio 2015设计的扩展工具,它使得开发者能够在VS2015的环境中对基于Cocos2d-x引擎的Lua脚本进行断点调试,极大地提升了开发效率和问题定位的准确性。Cocos2d-x是一个流行的开源...
《UnifyIt:基于cocos2d-x 3.8的游戏开发详解》 在游戏开发领域,cocos2d-x是一个广泛使用的开源游戏引擎,它允许开发者使用C++、JavaScript和Lua等多种语言来构建跨平台的游戏。本篇将深入探讨基于cocos2d-x 3.8...
要使用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是一款开源的游戏开发框架,主要用于创建2D和3D游戏,动画以及各种图形交互应用。作为一款跨平台的开发工具,Cocos2dx支持iOS、Android、Windows、Mac等多个操作系统,使得开发者可以编写一次代码,到处运行...
Cocos2d-x版本支持C++,而Cocos2d-JS则支持JavaScript,但在这个案例中,由于标签提及“java”,我们可以推断开发者可能使用了Cocos2d-Android,这是Cocos2d的一个Java实现。Cocos2d-Android提供了丰富的图形绘制、...