搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
我所理解的Cocos2d-x
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121246258
  • 作      者:
    秦春林著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2014
收藏
编辑推荐
  《我所理解的Cocos2d-x》完全基于Cocos2d-x3.0,深度剖析计算机图形学,OpenGLES及游戏引擎架构,全面提升游戏开发相关知识。
展开
作者简介
  秦春林,自大学开始自学编程,先后从事过工作流软件,云计算,Web等相关的工作。2011年开始进入游戏开发领域,主持并移植了Cocos2d-x-for-XNA项目。喜欢技术分享,发起并组织了北京快乐技术沙龙,多次作为讲师参与微软,CSDN,51CTO以及9RIA等组织的各类技术培训和讲座。参与了手游项目《天降》的开发,目前主要的兴趣方向是计算机图形学和游戏引擎架构,致力于用软件技术丰富游戏世界的表现及品质。
展开
内容介绍
  《我所理解的Cocos2d-x》针对较新的 Cocos2d-x 3.x版本,介绍了Coco2d-x游戏引擎的基本架构、渲染机制,以及各个子模块的功能和原理,并结合OpenGL ES图形渲染管线,深入探讨了游戏开发中涉及的相关图形学的知识,内容包括:Cocos2d-x的基本架构及渲染机制、纹理相关的知识、OpenGL ES 2.0渲染管线、计算机字体的绘制、多分辨率支持、事件分发、碰撞与物理引擎、游戏对象模型架构、Genius-x开源框架、脚本在游戏引擎中的架构等。《我所理解的Cocos2d-x》偏重讲解每个知识模块的概念及原理,使读者能够透过现象看到其背后的工作机制,所以本书在内容组织上并不是围绕Cocos2d-x的接口使用来展开,而是按照通用游戏引擎架构及图形学的内容进行组织。
  《我所理解的Cocos2d-x》面向中、高级开发者,可作为初级开发者进阶的教程,也可作为高校游戏引擎架构及图形学相关专业的参考教材。
展开
精彩书摘
  第16章  运行时游戏对象模型
  到目前为止,我们讨论的所有内容都可以称之为低阶引擎系统,例如Renderer如何将网格绘制到屏幕上,纹理如何被使用,字体如何被绘制,如何从人体学接口设备获取玩家输入信息,如何处理物体的碰撞,以及如何对物体执行动画等。这些几乎都是和游戏性无关的一些基础功能。
  当开始设计游戏的时候,开发者面对的往往是一个更上层的,可以称之为游戏性(Gameplay)基础系统的高阶引擎系统,例如怎样表示游戏中的对象,怎样组织它们的行为和状态,设计师怎样通过数据驱动来快速修改关卡及游戏配置,怎样高效有序地组织游戏对象之间的逻辑更新等。这些笔者称之为游戏性架构(Gameplay Architecture),或者很多开发者称之为游戏架构。理论上,游戏性架构的一些理论和实践甚至可以和游戏引擎无关。
  当然,游戏性架构其实涉及很多内容,例如它可以包括运行时游戏对象模型、关卡及串流、实时更新游戏对象模型、事件分发及脚本系统等。本章将会聚焦于运行时游戏对象模型,讲述常见的几种游戏对象设计的概念、方式及优缺点。
  16.1  概述
  在所有游戏性架构相关的内容中,运行时游戏对象模型可能是最复杂的系统,并且不同的游戏引擎呈现出的差异极大。例如Unity3D提供的组件模型,虚幻引擎提供的面向对象继承的模型,其他一些游戏例如《末日危城(Dungeon Siege)》则使用一种不同于两者的基于数据驱动的游戏对象模型。
  这些不同的游戏对象模型之间呈现出很大的设计思维及使用上的差异,但是它们往往都提供或者必须具备一些通用的功能,这些包括但不限于:
  (1)管理游戏对象的创建及销毁。游戏中经常会动态创建各种游戏对象,例如一个塔防游戏会定时出现一些小怪物,子弹在撞击到目标时立即被销毁等。许多游戏引擎都提供一种统一的动态创建、销毁游戏对象的方式,并管理游戏对象的内存及资源,例如第17章即将讲述的Genius-x框架中使用createEntity()、removeEntity(entity)来动态创建和销毁一个游戏对象。但是在Cocos2d-x中却不是通过统一的方式创建和销毁游戏对象,它使用每个Node子类自己的构造函数来创建,并使用一种特殊的方式管理内存(参见第2章)。
  (2)联系底层游戏引擎。每个游戏对象要能够通过某种方式访问底层的游戏引擎系统,例如能够渲染三角形网格、执行碰撞检测,对角色执行动画等。在Unity3D引擎中,每个游戏对象(GameObject)可以通过添加一个与底层引擎功能相关的组件(Componment)来访问底层引擎系统。Cocos2d-x的Node类则直接集成了物理模拟、动画、实时逻辑更新等接口。
  (3)实时模拟对象行为。游戏是一个高度实时的系统,游戏对象的状态、行为在每一帧都可能会随着时间发生变化,这需要一套高效的游戏对象更新机制。对象可能需要以特定的逻辑次序进行更新。此外,除了逻辑次序,游戏对象之间还可能存在依赖关系,需要按照一定的次序更新(关于游戏对象更新的次序会在本章后面讲述)。
  (4)定义新游戏对象类型。在开发过程中,随着游戏需求的改变和演进,游戏对象模型必须有足够的弹性,可以容易地加入新的对象类型。理想情况下,新的游戏类型应可以完全用数据驱动的方式定义,但是在实际情况中,大部分新增游戏类型都需要程序员的参与。在Genius-x框架中,新的不同行为的组合类型可以通过修改数据文件来实现,而新的行为则可以通过脚本来实现,然后修改数据文件来添加新的行为。
  (5)唯一的对象标识符。游戏世界可能会包含成百上千的游戏对象,在运行时必须能够识别和找到想要的对象,这意味着每种对象需要有某种唯一标识符。例如在Cocos2d-x 中可以通过给一个Node指定一个字符串名称,然后通过字符串标识符查找一个游戏对象。
  (6)游戏对象查询。除了上面按游戏唯一标识符查询游戏对象,游戏性系统还需要一些更高级的查询方式,例如找到某种类型的游戏对象,或者某个范围的敌人等。在面向组件或者属性的架构中,游戏对象是以组件/属性为单位存储的,很容易查找具有某个属性类型的游戏对象组合,并且这种查找游戏对象的方式对数据驱动更友好,笔者称之为面向类型编程。
  除了上述提到的这些,运行时游戏对象模型还包括有限状态机,用于同一个网络内的对象复制、对象序列化和持久性存档等。
  ……
展开
目录
第1章  全新的Cocos2d-x 3.0
1.1  Cocos2d-x 3.0的历史意义
1.1.1  回归C++风格
1.1.2  更灵活的渲染架构
1.1.3  更自由的发展
1.2  Cocos2d-x 3.0的新特性
1.2.1  使用C++风格
1.2.2  跨平台的Label
1.2.3  新的渲染系统
1.2.4  统一的消息分发
1.2.5  物理引擎集成
1.2.6  新的数据结构
1.2.7  其他
1.3  Cocos2d-x引擎展望
1.3.1  3D
1.3.2  Cocos Code IDE
1.4  本章小结

第2章  Cocos2d-x架构一瞥
2.1  Cocos2d-x引擎系统总览
2.2  Cocos2d-x内存管理机制
2.2.1  C++显式堆内存管理
2.2.2  C++ 11中的智能指针
2.2.3  为什么不使用智能指针
2.2.4  垃圾回收机制
2.2.5  Cocos2d-x内存管理机制
2.2.6  Cocos2d-x中的智能指针
2.2.7  怎样进行内存管理
2.3  UI树及运行时游戏对象
2.3.1  位置与变换
2.3.2  坐标系
2.3.3  UI树
2.3.4  UI元素与内存管理
2.4  应用程序架构
2.4.1  游戏生命周期
2.4.2  窗口尺寸
2.4.3  场景管理
2.4.4  游戏循环
2.5  实时更新游戏对象
2.5.1  帧率
2.5.2  Scheduler
2.5.3  时间线
2.5.4  逻辑更新优先级
2.5.5  性能问题
2.6  Cocos2d-x的主线程
2.6.1  在主线程中执行异步处理
2.6.2  纹理的异步加载
2.6.3  异步处理的单元测试
2.7  本章小结

第3章  OpenGL ES 2.0概览
3.1  图形处理器简介
3.2  什么是OpenGL ES
3.3  OpenGL ES 2.0渲染管线
3.3.1  顶点数组
3.3.2  顶点着色器
3.3.3  图元装配
3.3.4  光栅化
3.3.5  片段着色器
3.3.6  片段测试
3.4  渲染管线中的并行计算
3.5  构建高性能的渲染引擎
3.6  帧缓冲
3.7  本章小结

第4章  全新的绘制系统
4.1  新绘制系统的特点
4.2  绘制系统概览
4.3  RenderCommand
4.4  RenderQueue
4.5  GroupCommand
4.6  Render
4.6.1  RenderCommand的排序
4.6.2  QuadCommand
4.7  元素的可见性
4.8  绘制的时机
4.9  示例:自定义RenderCommand
4.10  本章小结
......
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证