我所理解的Cocos2d-x

正版图书,假一赔十!

送至
由""直接销售和发货,并提供售后服务 联系卖家
加入购物车 购买电子书
特色服务
企业采购 针对企业客户采购的专业服务

看了又看

商品预定流程:

查看大图
/
×

菁宇图书专营店

店铺装修中

商家:
菁宇图书专营店
联系:
联系卖家
电话:

029-86699682

  • 商品

  • 服务

  • 物流

搜索店内商品

商品分类

苏宁阅读客户端

1分钱畅读全场,海量书籍不限量任你看

商品参数
  • 作者: 秦春林
  • 出版社:电子工业出版社
  • 出版时间:2014-12-01
  • 版次:1
  • 印次:1
  • 印刷时间:2014-12-01
  • 字数:520.00千字
  • 页数:436
  • 开本:16开
  • 装帧:平装
  • ISBN:9787121246258
  • 版权提供:电子工业出版社
编辑推荐

暂无

媒体评论

暂无

作者简介

    秦春林,目前就职于北京魂世界信息技术有限公司,自大学开始自学编程,先后从事过工作流软件、云计算、Web等相关领域的工作。2011年开始进入游戏开发领域,主持并移枘了Cocos2d-x-for-XNA项目。喜欢分享技术,发起并组织了北京快乐技术沙龙,多次作为讲师参与微软、CSDN、51CTO及9RIA等组织的各类技术培训和讲座。参与了手游项目《天降》的开发。目前主要的兴趣方向是计算机图形学和游戏引擎架构,致力于用软件技术丰富游戏世界的表现及品质。

内容简介

    本书针对最新的Cocos2d-x3.x版本,介绍了Cocos2d-x游戏引擎的基本架构、渲染机制,以及各个子模块的功能和原理,并结合OpenGLES图形渲染管线,深入探讨了游戏开发中涉及的图形学知识,内容包括Cocos2d-x的基本架构及渲染机制、纹理的相关知识、OpenGLES2.0渲染管线、计算机字体的绘制、多分辨率支持、事件分发、碰撞与物理引擎、游戏对象模型架构、Genius-x开源框架、脚本在游戏引擎中的架构等。本书偏重讲解每个知识模块的概念及原理,使读者能够透过现象看到其背后的工作机制,所以,本书并不是围绕Cocos2d-x接口的使用组织内容,而是按照通用游戏引擎架构及图形学的知识组织内容。

目录

第1章全新的Cocos2d-x3.01

1.1Cocos2d-x3.0的历史意义1

1.1.1回归C++风格2

1.1.2更灵活的渲染架构2

1.1.3更自由的发展2

1.2Cocos2d-x3.0的新特性3

1.2.1使用C++风格3

1.2.2跨平台的Label6

1.2.3新的渲染系统6

1.2.4统一的消息分发8

1.2.5物理引擎集成9

1.2.6新的数据结构10

1.2.7其他14

1.3Cocos2d-x引擎展望15

1.3.13D16

1.3.2CocosCodeIDE16

1.4本章小结17

第2章Cocos2d-x架构一瞥19

2.1Cocos2d-x引擎系统总览19

2.2Cocos2d-x内存管理机制21

2.2.1C++显式堆内存管理21

2.2.2C++11中的智能指针22

2.2.3为什么不使用智能指针23

2.2.4垃圾回收机制23

2.2.5Cocos2d-x内存管理机制24

2.2.6Cocos2d-x中的智能指针29

2.2.7怎样进行内存管理35

2.3UI树及运行时游戏对象35

2.3.1位置与变换35

2.3.2坐标系36

2.3.3UI树39

2.3.4UI元素与内存管理45

2.4应用程序架构46

2.4.1游戏生命周期46

2.4.2窗口尺寸48

2.4.3场景管理48

2.4.4游戏循环49

2.5实时更新游戏对象52

2.5.1帧率52

2.5.2Scheduler53

2.5.3时间线54

2.5.4逻辑更新优先级55

2.5.5性能问题56

2.6Cocos2d-x的主线程56

2.6.1在主线程中执行异步处理57

2.6.2纹理的异步加载58

2.6.3异步处理的单元测试60

2.7本章小结60

第3章OpenGLES2.0概览62

3.1图形处理器简介62

3.2什么是OpenGLES63

3.3OpenGLES2.0渲染管线64

3.3.1顶点数组65

3.3.2顶点着色器66

3.3.3图元装配66

3.3.4光栅化69

3.3.5片段着色器70

3.3.6片段测试70

3.4渲染管线中的并行计算71

3.5构建高性能的渲染引擎72

3.6帧缓冲73

3.7本章小结74

第4章全新的绘制系统76

4.1新绘制系统的特点76

4.2绘制系统概览77

4.3RenderCommand79

4.4RenderQueue80

4.5GroupCommand81

4.6Render84

4.6.1RenderCommand的排序84

4.6.2QuadCommand85

4.7元素的可见性87

4.8绘制的时机89

4.9示例:自定义RenderCommand91

4.10本章小结95

第5章纹理96

5.1光栅化96

5.1.1多重采样97

5.1.2纹理坐标98

5.2像素矩形99

5.2.1像素存储模式99

5.2.2纹理数据的传输99

5.2.3解包100

5.3客户端图像格式103

5.3.1纹理格式的对应关系104

5.3.2图像数据格式转换105

5.4纹理对象和加载纹理107

5.5纹理单元与多重纹理109

5.6纹理缩放110

5.6.1纹理缩小110

5.6.2纹理放大111

5.6.3在Cocos2d-x中设置过滤模式112

5.7多级纹理113

5.7.1多级纹理过滤模式113

5.7.2多级纹理的上传114

5.7.3多级纹理的生成115

5.8纹理压缩116

5.8.1压缩纹理的特点116

5.8.2压缩纹理的实现117

5.8.3在Cocos2d-x中使用压缩纹理118

5.8.4PVRTC和PVRTC2120

5.8.5ETC122

5.8.6针对不同设备使用不同的压缩纹理123

5.9纹理缓存管理123

5.9.1纹理的生命周期124

5.9.2用TextureCache来管理纹理125

5.9.3场景过渡中的资源管理127

5.9.4Android下的纹理恢复处理130

5.10纹理所占内存的计算131

5.11使用纹理最佳实践133

5.11.1硬件层面133

5.11.2程序层面133

5.11.3资源层面134

5.12本章小结135

第6章精灵137

6.1用Sprite绘制一个矩形区域137

6.1.1V3F_C4B_T2F_Quad结构体138

6.1.2使用QuadCommand进行绘制139

6.1.3将Sprite作为子元素140

6.2Sprite的绘制属性140

6.2.1颜色混合141

6.2.2颜色叠加144

6.3Alpha预乘148

6.4精灵表150

6.5精灵动画152

6.6批绘制还是自动批绘制154

6.6.1SpriteBatchNode154

6.6.2TextureAtlas156

6.6.3SpriteBatchNode的特点和限制157

6.7部分拉伸:九宫格157

6.8本章小结158

第7章OpenGLES着色语言161

7.1概览161

7.2基础类型162

7.2.1空类型163

7.2.2布尔类型163

7.2.3整型163

7.2.4浮点型163

7.2.5矢量164

7.2.6矩阵164

7.2.7采样器164

7.2.8结构体165

7.2.9数组165

7.3存储限定符166

7.3.1默认限定符167

7.3.2常量限定符167

7.3.3属性限定符167

7.3.4全局限定符168

7.3.5易变量限定符169

7.4构造器170

7.4.1标量的转换构造170

7.4.2矢量和矩阵构造器171

7.4.3结构体构造器172

7.5矢量的分量173

7.6矩阵的分量174

7.7结构体和成员174

7.8矢量和矩阵操作符175

7.9本章小结176

第8章OpenGLES着色程序177

8.1顶点和顶点数组177

8.1.1图元与顶点178

8.1.2顶点属性状态178

8.1.3顶点数组180

8.2顶点缓冲对象185

8.2.1顶点数组缓冲对象187

8.2.2索引数组缓冲对象188

8.2.3使用VAO缓存顶点数组状态190

8.3着色器程序192

8.3.1着色器程序字符串192

8.3.2着色器的加载和编译193

8.3.3着色器程序对象195

8.4Cocos2d-x着色器子系统196

8.4.1GLProgram与Node之间的关系197

8.4.2GLProgramState199

8.4.3着色器程序的使用过程202

8.4.4GLProgramState的管理204

8.4.5GLProgramState的限制205

8.5顶点着色器206

8.5.1输入参数206

8.5.2顶点坐标输出参数207

8.5.3易变量输出参数208

8.6片段着色器209

8.6.1输入参数210

8.6.2纹理采样210

8.6.3输出参数211

8.7着色器编辑工具211

8.8示例213

8.8.1使用ETC压缩纹理214

8.8.2动态设置着色器参数217

8.9着色器程序最佳实践220

8.10本章小结220

第9章帧缓冲223

9.1GroupCommand223

9.1.1使用GroupCommand的流程224

9.1.2GroupCommand的限制225

9.2帧缓冲226

9.2.1绑定和管理帧缓冲227

9.2.2将图像附加到帧缓冲228

9.2.3渲染缓冲对象228

9.2.4将Renderbuffer附加到帧缓冲230

9.2.5将Texture附加到帧缓冲230

9.2.6帧缓冲完成状态231

9.3RenderTexture234

9.3.1RenderTexture的初始化235

9.3.2RenderTexture的绘制238

9.3.3ReadPixels239

9.3.4RenderTexture的限制及用途240

9.4本章小结240

第10章片段操作242

10.1片段操作简述242

10.2逻辑缓冲区243

10.2.1位平面244

10.2.2按位计算245

10.3片段测试248

10.3.1模板测试248

10.3.2深度测试250

10.3.3模板测试的步骤251

10.3.4片段测试的用途252

10.4全缓冲区操作254

10.4.1控制缓冲区的更新254

10.4.2清理缓冲区254

10.5ClippingNode255

10.5.1ClippingNode的绘制流程255

10.5.2ClippingNode的模板测试分析256

10.6本章小结258

第11章多分辨率支持259

11.1概述259

11.2设计分辨率260

11.2.1缩放策略261

11.2.2调整元素位置262

11.2.3几个有用的变量263

11.2.4使用屏幕分辨率264

11.2.5视口设置264

11.2.6什么时候缩放了265

11.3资源分辨率267

11.3.1资源分辨率的设置267

11.3.2真实分辨率InPixels268

11.3.3什么时候缩放资源269

11.4本章小结270

第12章事件分发272

12.1概述272

12.1.1什么是事件272

12.1.2事件的工作机制272

12.1.3事件系统的特点273

12.2订阅者274

12.2.1事件类型275

12.2.2注册与管理订阅者276

12.3事件的分发278

12.3.1订阅者的排序280

12.3.2嵌套事件282

12.3.3在事件分发中修改订阅者282

12.3.4停止分发事件283

12.4事件与Node284

12.4.1暂停与恢复284

12.4.2删除订阅者285

12.5触摸事件285

12.5.1EventListenerTouchAllAtOnce286

12.5.2EventListenerTouchOneByOne286

12.5.3单点和多点触摸之间的关系288

12.5.4触摸点的位置判断288

12.5.5可见性与触摸事件289

12.6其他289

12.6.1其他操作系统事件290

12.6.2EventCustom290

12.6.3内存管理290

12.6.4回调与返回值291

12.6.5单元测试291

12.6.6其他事件291

12.7本章小结292

第13章字体的故事293

13.1计算机字体的历史293

13.2轮廓字形概述294

13.2.1点295

13.2.2轮廓295

13.2.3轮廓的方向296

13.2.4轮廓的交叉296

13.2.5混合轮廓字形296

13.2.6字形格子297

13.3FreeType字体引擎297

13.3.1字体文件及字形索引298

13.3.2字符度量298

13.3.3FreeType字形解析过程299

13.3.4FreeType字形装载301

13.4FontAtlas304

13.4.1Font305

13.4.2FontAtlasCache308

13.5Label309

13.5.1通用属性310

13.5.2Font字符集312

13.5.3轮廓字体的缩放312

13.5.4特效316

13.6使用字体的最佳实践319

第14章动画系统321

14.1概述321

14.2线性插值323

14.2.1标量插值323

14.2.2矢量插值323

14.2.3变换矩阵插值324

14.2.4插值在动画系统中的运用324

14.3给元素添加动画326

14.3.1Action是一个自描述的对象326

14.3.2在Node上执行动画327

14.3.3控制动画的动画329

14.4动画系统架构331

14.4.1Speed333

14.4.2缓动函数333

14.4.3自定义动画――精灵闪白334

14.5本章小结337

第15章碰撞及物理引擎339

15.1物理引擎概述339

15.2碰撞检测系统340

15.2.1刚体340

15.2.2接触和碰撞343

15.2.3碰撞查询348

15.3刚体动力学349

15.3.1控制刚体的运动349

15.3.2碰撞响应350

15.3.3约束351

15.4整合物理引擎352

15.4.1刚体与可视对象352

15.4.2物理世界355

15.4.3游戏循环阶段357

15.5预处理与工具357

15.6本章小结358

第16章运行时游戏对象模型360

16.1概述360

16.2运行时游戏对象模型361

16.2.1以对象为中心的架构362

16.2.2组件模型364

16.2.3以属性为中心的架构367

16.3EntityComponentSystem369

16.3.1属性结构370

16.3.2分离数据与行为371

16.3.3数据驱动372

16.4对象查询与消息通信373

16.4.1根据唯一标识符查询374

16.4.2根据类型查询375

16.4.3面向类型编程375

16.4.4游戏对象数据库376

16.5实时更新游戏对象377

16.5.1更新的性能优化377

16.5.2更新的时序377

16.6本章小结379

第17章Genius-x开源框架381

17.1Genius-x是什么381

17.1.1Genius-x架构一览382

17.1.2Genius-x项目结构及使用384

17.2游戏对象模型385

17.2.1Entity385

17.2.2Component388

17.2.3System391

17.2.4ECSManager394

17.2.5数据驱动397

17.2.6NodeCom399

17.2.7对象的层级结构403

17.3数据格式、加载及串流403

17.3.1数据格式404

17.3.2文件加载和管理405

17.3.3游戏世界的串流406

17.4游戏通用系统407

17.5共享组件409

17.6示例409

第18章脚本411

18.1脚本的概念411

18.1.1脚本语言的特征412

18.1.2Lua脚本语言412

18.1.3脚本所需的架构413

18.2运行时脚本语言的功能415

18.2.1对原生编程语言的接口415

18.2.2游戏对象句柄416

18.2.3在脚本中接收及处理事件423

18.2.4发送事件427

18.2.5面向对象脚本语言427

18.3Luabindings430

18.3.1生成绑定代码430

18.3.2在程序中使用绑定代码431

18.3.3自定义绑定432

18.4在Lua中使用Genius-x433

18.4.1配置环境433

18.4.2创建Component脚本433

18.4.3创建System脚本434

18.4.4其他接口435

18.5本章小结435

参考文献437

书摘

暂无

售后保障

最近浏览

猜你喜欢

该商品在当前城市正在进行 促销

注:参加抢购将不再享受其他优惠活动

x
您已成功将商品加入收藏夹

查看我的收藏夹

确定

非常抱歉,您前期未参加预订活动,
无法支付尾款哦!

关闭

抱歉,您暂无任性付资格