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

关于cocos2dx的主循环

 
阅读更多

关于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实战 JS卷》是一本深入探讨Cocos2d-x游戏开发的专著,主要聚焦于使用JavaScript语言进行游戏编程。Cocos2d-x是一个开源的游戏开发框架,广泛应用于移动设备和桌面平台,支持iOS、Android、Windows等多...

    android cocos 2D范例

    在Android平台上,Cocos2D是一个非常流行的2D游戏开发框架,它允许开发者创建高质量的图形和交互式体验。这个“android cocos 2D范例”着重于展示如何利用Cocos2D-Android库来实现游戏功能,特别是针对鼠标点击事件...

    cocos2d-x嵌入webview

    《cocos2d-x嵌入Webview:游戏与网页交互的深度解析》 在移动游戏开发领域,cocos2d-x作为一个广泛使用的2D游戏引擎,以其高效、跨平台的特性受到众多开发者青睐。然而,游戏往往需要与网页进行交互,以实现动态...

    迷失航线-Cocos2d-x项目实战-射击类游戏-关东升

    《迷失航线》是一款基于Cocos2d-x框架开发的射击类游戏,专为移动设备设计。Cocos2d-x是一个开源的游戏开发框架,它使用C++作为主要编程语言,同时支持Lua和JavaScript,广泛应用于2D游戏开发。在这个项目实战中,...

    cocos2d-x游戏源码

    《cocos2d-x游戏源码解析》 Cocos2d-x是一款强大的开源游戏开发框架,主要用于构建2D游戏、演示程序和其他图形交互应用。它基于C++,同时提供了Lua和JavaScript的绑定,使得开发者可以选择自己熟悉的语言进行游戏...

    Cocos2d-x《开心斗地主》棋牌类游戏源码

    通过阅读源码,我们可以深入理解Cocos2d-x的游戏开发流程,学习如何组织项目结构,如何处理游戏循环,以及如何进行多线程编程等。 总的来说,《开心斗地主》的源码是一个极好的学习案例,涵盖了Cocos2d-x框架的多个...

    cocos2d-x2.0 射击游戏实现 沈大海cocos2d-x教程实例

    《cocos2d-x2.0射击游戏实现详解——沈大海cocos2d-x教程实例》 在游戏开发领域,cocos2d-x是一个广泛使用的2D游戏开发框架,尤其适用于跨平台的游戏开发。本教程将深入探讨如何利用cocos2d-x2.0版本实现一款简单的...

    cocos2d-x默认第一个模板

    博客主页http://blog.csdn.net/runaying提供了关于cocos2d-x的教程和经验分享,是初学者获取帮助的好去处。此外,官方文档、社区论坛、GitHub上的开源项目和Stack Overflow等平台也是获取cocos2d-x知识的重要途径。 ...

    cocos2d-x游戏实例-简易动作游戏

    2. CSDN博客:通过链接(http://blog.csdn.net/bill_man)可以获取更多关于cocos2d-x游戏开发的具体实例和技巧。 3. 社区论坛:cocos2d-x官方论坛和开发者社区是交流问题、分享经验的好去处。 总结,cocos2d-x以其...

    知易cocos2d源代码

    【知易cocos2d源代码】是一套完整的Cocos2D框架源码,专为初学者设计,便于他们入门并学习iPhone游戏开发。Cocos2D是一个流行的游戏开发框架,广泛应用于iOS、Android以及Mac OS X等平台,它简化了2D游戏的构建过程...

    贪吃蛇cocos2d-x

    1. **游戏场景管理**:Cocos2d-x使用Scene对象来表示游戏的不同阶段,例如主菜单、游戏进行中、游戏结束等。在贪吃蛇游戏中,每个场景都有其特定的逻辑和显示内容,通过Director类的replaceScene或pushScene方法实现...

    cocos2d-x+lua游戏demo源码

    【cocos2d-x+lua游戏demo源码】是一个基于cocos2d-x游戏引擎和lua脚本语言的游戏示例项目。cocos2d-x是一个跨平台的2D游戏开发框架,广泛应用于移动设备,如iOS和Android。lua是一种轻量级的、面向过程的编程语言,...

    Cocos2d-html5 references/cocos2d-html5文档

    1. **导演(Director)**:它是整个Cocos2d-html5游戏循环的管理者,控制着游戏的帧率和场景切换。 2. **场景(Scene)**:场景是游戏的一个独立单元,可以包含多个层(Layer)和精灵(Sprite)。 3. **层(Layer...

    COCOS2D中文教程

    在音频处理上,Cocos2D支持播放背景音乐和音效,开发者将学习如何控制音频的播放、暂停、停止和循环。 最后,可能还会讲解如何使用CocosBuilder或类似的可视化工具进行界面布局和动画设计,提升开发效率。 总之,...

    cocos2d-3.0 api文档

    1. CCDirector:是cocos2d的核心,负责管理场景(CCScene)、层(CCLayer)以及渲染循环。它控制着游戏的时间流逝,包括帧率设定、场景切换等。 2. CCScene:作为游戏的基本容器,可以包含一个或多个CCLayer。 3. ...

    Cocos2D-中文版

    Cocos2D是一款开源的游戏引擎,广泛应用于iOS和Android平台的游戏开发。中文版的Cocos2D为不熟悉英文的开发者提供了便利,使其能够更加轻松地学习和使用这一强大的游戏开发工具。 首先,Cocos2D中文版的第1章是介绍...

    cocos2d-x 摇杆

    【main.m】是项目的主入口文件,在cocos2d-x中,它负责启动游戏的运行循环。在iOS平台上,main.m通常会包含AppDelegate的实例化和Cocos2d初始化代码,从而确保ccjoystick可以正确地在游戏场景中加载和显示。 ...

    Cocos2D-X2.2.3学习笔记3(内存管理)

    在Cocos2D-X2.2.3的学习过程中,内存管理是至关重要的一个环节,它直接影响到游戏的性能和稳定性。Cocos2D-X是一个跨平台的2D游戏开发框架,使用C++作为主要编程语言,并支持Lua和JavaScript。本笔记将深入探讨Cocos...

    Cocos2d-JS开发之旅完整版pdf

    Cocos2d-JS是Cocos2d-x项目的一部分,是一个跨平台的游戏开发框架,它将JavaScript和C++的优势结合在一起,使得开发者可以用JavaScript编写代码,同时享受到高性能的原生应用体验。该框架支持创建2D游戏、教育应用、...

    Cocos2d-x3.0final自学教程贪食蛇项目源码

    6. **游戏循环**:Cocos2d-x中的Scheduler和Update函数用于实现游戏的主循环。理解这些函数如何更新游戏状态并渲染屏幕。 7. **碰撞检测**:在贪食蛇游戏中,你需要判断蛇的身体是否碰撞到边界或者自己。学习如何...

Global site tag (gtag.js) - Google Analytics