关于cocos2dx的主循环
1、调用栈
cocos2d::CCDirector::drawScene() Line 268C++
cocos2d::CCDisplayLinkDirector::mainLoop() Line 1055C++
cocos2d::CCApplication::run() Line 67 + 0x20 bytesC++
2、drawScene主逻辑
m_pScheduler->update
切换scene
m_pRunningScene->visit
排序
按着zorder依次画每个child(没有culling的过程,只能程序自己用visible属性来进行场景剔除,即即使是看不到的sprite,也会调用opengl进行渲染)
递归draw每个node
3、update的处理逻辑
按着优先级 <0 =0 >0 依次update每个模块(通过scheduleupdate放进来的需要每帧执行的函数)
自定义的handler(通过timer累积时间,时间到了之后回调过来)
脚本的tick
删除不同的handler
4、好处
可以看到scheduler的update是完全松散的管理的,这样提高了灵活性,如果需要添加网络等别的模块也可以方便的使用timer集成进来
相关推荐
《Cocos2d-x实战 JS卷》是一本深入探讨Cocos2d-x游戏开发的专著,主要聚焦于使用JavaScript语言进行游戏编程。Cocos2d-x是一个开源的游戏开发框架,广泛应用于移动设备和桌面平台,支持iOS、Android、Windows等多...
在Android平台上,Cocos2D是一个非常流行的2D游戏开发框架,它允许开发者创建高质量的图形和交互式体验。这个“android cocos 2D范例”着重于展示如何利用Cocos2D-Android库来实现游戏功能,特别是针对鼠标点击事件...
《cocos2d-x嵌入Webview:游戏与网页交互的深度解析》 在移动游戏开发领域,cocos2d-x作为一个广泛使用的2D游戏引擎,以其高效、跨平台的特性受到众多开发者青睐。然而,游戏往往需要与网页进行交互,以实现动态...
《迷失航线》是一款基于Cocos2d-x框架开发的射击类游戏,专为移动设备设计。Cocos2d-x是一个开源的游戏开发框架,它使用C++作为主要编程语言,同时支持Lua和JavaScript,广泛应用于2D游戏开发。在这个项目实战中,...
《cocos2d-x游戏源码解析》 Cocos2d-x是一款强大的开源游戏开发框架,主要用于构建2D游戏、演示程序和其他图形交互应用。它基于C++,同时提供了Lua和JavaScript的绑定,使得开发者可以选择自己熟悉的语言进行游戏...
通过阅读源码,我们可以深入理解Cocos2d-x的游戏开发流程,学习如何组织项目结构,如何处理游戏循环,以及如何进行多线程编程等。 总的来说,《开心斗地主》的源码是一个极好的学习案例,涵盖了Cocos2d-x框架的多个...
《cocos2d-x2.0射击游戏实现详解——沈大海cocos2d-x教程实例》 在游戏开发领域,cocos2d-x是一个广泛使用的2D游戏开发框架,尤其适用于跨平台的游戏开发。本教程将深入探讨如何利用cocos2d-x2.0版本实现一款简单的...
博客主页http://blog.csdn.net/runaying提供了关于cocos2d-x的教程和经验分享,是初学者获取帮助的好去处。此外,官方文档、社区论坛、GitHub上的开源项目和Stack Overflow等平台也是获取cocos2d-x知识的重要途径。 ...
2. CSDN博客:通过链接(http://blog.csdn.net/bill_man)可以获取更多关于cocos2d-x游戏开发的具体实例和技巧。 3. 社区论坛:cocos2d-x官方论坛和开发者社区是交流问题、分享经验的好去处。 总结,cocos2d-x以其...
【知易cocos2d源代码】是一套完整的Cocos2D框架源码,专为初学者设计,便于他们入门并学习iPhone游戏开发。Cocos2D是一个流行的游戏开发框架,广泛应用于iOS、Android以及Mac OS X等平台,它简化了2D游戏的构建过程...
1. **游戏场景管理**:Cocos2d-x使用Scene对象来表示游戏的不同阶段,例如主菜单、游戏进行中、游戏结束等。在贪吃蛇游戏中,每个场景都有其特定的逻辑和显示内容,通过Director类的replaceScene或pushScene方法实现...
【cocos2d-x+lua游戏demo源码】是一个基于cocos2d-x游戏引擎和lua脚本语言的游戏示例项目。cocos2d-x是一个跨平台的2D游戏开发框架,广泛应用于移动设备,如iOS和Android。lua是一种轻量级的、面向过程的编程语言,...
1. **导演(Director)**:它是整个Cocos2d-html5游戏循环的管理者,控制着游戏的帧率和场景切换。 2. **场景(Scene)**:场景是游戏的一个独立单元,可以包含多个层(Layer)和精灵(Sprite)。 3. **层(Layer...
在音频处理上,Cocos2D支持播放背景音乐和音效,开发者将学习如何控制音频的播放、暂停、停止和循环。 最后,可能还会讲解如何使用CocosBuilder或类似的可视化工具进行界面布局和动画设计,提升开发效率。 总之,...
1. CCDirector:是cocos2d的核心,负责管理场景(CCScene)、层(CCLayer)以及渲染循环。它控制着游戏的时间流逝,包括帧率设定、场景切换等。 2. CCScene:作为游戏的基本容器,可以包含一个或多个CCLayer。 3. ...
Cocos2D是一款开源的游戏引擎,广泛应用于iOS和Android平台的游戏开发。中文版的Cocos2D为不熟悉英文的开发者提供了便利,使其能够更加轻松地学习和使用这一强大的游戏开发工具。 首先,Cocos2D中文版的第1章是介绍...
【main.m】是项目的主入口文件,在cocos2d-x中,它负责启动游戏的运行循环。在iOS平台上,main.m通常会包含AppDelegate的实例化和Cocos2d初始化代码,从而确保ccjoystick可以正确地在游戏场景中加载和显示。 ...
在Cocos2D-X2.2.3的学习过程中,内存管理是至关重要的一个环节,它直接影响到游戏的性能和稳定性。Cocos2D-X是一个跨平台的2D游戏开发框架,使用C++作为主要编程语言,并支持Lua和JavaScript。本笔记将深入探讨Cocos...
Cocos2d-JS是Cocos2d-x项目的一部分,是一个跨平台的游戏开发框架,它将JavaScript和C++的优势结合在一起,使得开发者可以用JavaScript编写代码,同时享受到高性能的原生应用体验。该框架支持创建2D游戏、教育应用、...
6. **游戏循环**:Cocos2d-x中的Scheduler和Update函数用于实现游戏的主循环。理解这些函数如何更新游戏状态并渲染屏幕。 7. **碰撞检测**:在贪食蛇游戏中,你需要判断蛇的身体是否碰撞到边界或者自己。学习如何...