精通Cocos2d-x游戏开发(基础卷)

综合评级:
★★★★★

定价:
¥69.00

作者:
王永宝

出版社:
清华大学

出版日期:
2016/04/01

页数:
368

ISBN:
9787302432029

书籍介绍

王永宝编译的《精通Cocos2d-x游戏开发(基础卷 )》分为《基础卷》和《进阶卷》两个分册。两卷书 籍都有明确的写作目的。

《基础卷》专注于 Cocos2d-x引擎基础,致力于让Cocos2d-x初学者成 为一个基础扎实、靠谱的程序员。

《进阶卷》专注于 各种实用技术,是作者多年开发经验的结晶,书中的 技术点大多是基于实际工作中碰到的问题提炼而来, 从问题的本质出发到解决问题的思路,提供了多种解 决方案,并对比各方案的优缺点,启发读者思考。
本书为《Cocos2d-x游戏开发》的《基础卷》, 共31章,分为4篇。

第1篇为《入门篇》,涵盖的主要 内容有Cocos2d-x开发环境、学习建议、注意事项及 低级错误总结,以及必备的C++编程基础和指针知识 等。

第2篇为《基础框架篇》,涵盖的主要内容有节 点系统、内存管理、场景和层、精灵、动作系统、动 画、纹理、文字、运行机制、渲染机制、消息机制和 Schedule等。

第3篇为《UI与交互篇》,涵盖的主要 内容有触摸输入、文本输入、按钮与重力感应输入、 Menu和MenuItem,以及GUI框架的功能控件、文本输 入、文本显示及容器控件等。

第4篇为《CocoStudio 工具链篇》,涵盖的主要内容有CocoStudio的UI编辑 器、场景编辑器、动画编辑器、2.x编辑器及 CocosBuilder等。
本书适合学习Cocos2d-x游戏开发的零基础读者 阅读,尤其适合Cocos2d-x自学人员。对于大中专院 校的学生和社会培训班的学员,本书也是一本不可多 得的学习教程。

作者简介

王永宝,自高一起就自学编程,至今10年有余。酷爱游戏开发,熟练掌握C/C 、Lua和C#等编程语言,擅长网络编程、高并发服务端架构设计、客户端框架设计和OpenGL等技术。2010年参加广东省“专业杯”软件设计大赛,在31所院校的86支队伍的激烈竞争中,凭借一个月内使用三门语言开发的塔防游戏而获得了一等奖。同年进入深圳市饭后科技有限公司,担任过C 服务端主程、Unity3D主程和Cocos2d-x主程,并作为技术负责人负责了多款游戏的开发。业余时间潜心研究游戏开发,也开发了多款游戏。

目录

第1篇 入门篇

第1章 Cocos2d-x启航 2

1.1 特点、内容结构以及建议 2

1.2 Cocos2d-x简介 3

1.3 从2.x到3.x 4

1.4 约定 4

1.5 启航 5

1.5.1 Windows 6

1.5.2 Mac 10

1.5.3 Linux 10

1.5.4 Cocos引擎 11

第2章 使用Cocos2d-x 13

2.1 Cocos2d-x世界 13

2.1.1 显示图片 14

2.1.2 执行逻辑 14

2.1.3 获取输入 14

2.2 分析HelloCpp 15

2.3 小结 18

第3章 低级错误大全 20

3.1 create和retain-release 20

3.2 继承对象的create 21

3.3 多个对象执行同一个Action 21

3.4 忘记调用父类的虚函数 21

3.5 隐藏在代码中的神秘杀手,节点中的节点操作 22

3.6 普通对象和new出来的对象 22

3.7 不要忘记init 23

3.8 addChild失败 24

3.9 在onEnter中调用parent的addChild 24

3.10 忘记移除 25

3.11 重载draw注意事项 25

3.12 关于引用 25

3.13 关于命名空间 25

3.14 关于类之间的互相包含 26

3.15 关于平台相关的API 26

3.16 关于update中写逻辑 26

3.17 关于调试 27

3.18 小结 29

第4章 图解指针 30

4.1 指针与内存 30

4.2 指针操作 32

4.3 指针与数组 32

4.4 函数指针 33

4.5 野指针和内存泄漏 34

第5章 C++11简介 36

5.1 初始化列表 36

5.2 类型推导 37

5.3 范围推导 37

5.4 智能指针和空指针 37

5.5 Lambda特性 38

5.6 变长参数模板 39

5.7 右值引用 41

5.7.1 分辨左值和右值 41

5.7.2 移动语义 42

5.7.3 完美转发 45

5.8 显式虚函数重载 46

5.9 小结 47

第2篇 基础框架篇

第6章 节点系统 50

6.1 节点的表现 50

6.1.1 位置 50

6.1.2 旋转和倾斜 51

6.1.3 缩放 52

6.1.4 锚点Anchor 52

6.1.5 渲染顺序ZOrder 53

6.1.6 尺寸 54

6.1.7 懒惰计算 54

6.1.8 其他属性介绍 55

6.2 节点的使用 55

6.2.1 使用Action 56

6.2.2 使用Schedule 56

6.3 节点和节点 57

6.3.1 添加子节点 58

6.3.2 删除节点 59

6.3.3 节点查询 60

6.3.4 节点之间的空间变换 61

6.4 节点树的渲染 63

6.5 节点与组件 64

第7章 内存管理 66

7.1 内存基础知识 66

7.1.1 内存区域的划分 66

7.1.2 new和malloc的区别 67

7.1.3 堆和栈的区别 68

7.1.4 代码分析 68

7.2 内存泄露、野指针和跨动态链接库的内存使用 69

7.2.1 内存泄露 69

7.2.2 野指针 69

7.2.3 动态链接库的内存 70

7.3 Cocos2d-x的引用计数 70

7.4 容器对象的内存管理 72

7.5 复制对象 73

7.6 内存优化 74

第8章 场景和层 77

8.1 Scene场景 77

8.1.1 场景和Director 77

8.1.2 切换场景与引用计数 79

8.1.3 场景切换特效 81

8.2 Layer层 85

8.2.1 Layer层详解 86

8.2.2 LayerColor颜色层详解 86

8.2.3 LayerGradient渐变层详解 87

8.2.4 LayerMultiplex复合层详解 88

第9章 精灵详解 89

9.1 Sprite详解 89

9.1.1 使用Sprite 89

9.1.2 创建Sprite 89

9.1.3 初始化流程 90

9.1.4 设置纹理 91

9.1.5 渲染 92

9.2 SpriteFrame和SpriteFrameCache详解 92

9.2.1 SpriteFrame详解 92

9.2.2 SpriteFrameCache详解 93

9.2.3 SpriteFrameCache加载流程 93

9.3 SpriteBatchNode详解 94

9.3.1 创建SpriteBatchNode 95

9.3.2 添加与删除SpriteBatchNode 95

9.3.3 使用SpriteBatchNode 95

第10章 动作系统 98

10.1 使用Action 98

10.2 Action整体框架 99

10.2.1 Action类 100

10.2.2 ActionManager类 100

10.3 Action运行流程 101

10.3.1 瞬时动作ActionInstant 103

10.3.2 持续动作ActionInterval 103

10.3.3 组合动作 104

10.3.4 函数动作 104

10.3.5 时间动作 105

10.4 Action的分类 105

10.4.1 瞬间动作 107

10.4.2 持续动作 107

10.4.3 组合动作 108

10.4.4 变速动作 108

10.4.5 扩展动作 109

10.4.6 特效动作 111

第11章 播放动画 119

11.1 播放帧动画 119

11.2 创建Animation 121

11.2.1 基于Plist文件自动创建Animation 121

11.2.2 解析TexturePacker的Plist文件 123

11.2.3 使用AnimationCache 125

11.2.4 经验分享 126

11.3 帧动画框架剖析 127

11.3.1 帧动画系统结构 127

11.3.2 Animate运行流程 128

11.4 进度动画 129

11.4.1 半径扫描效果 130

11.4.2 水平扫描效果 131

11.4.3 垂直扫描效果 132

11.4.4 四边扩散/收缩效果 133

第12章 纹理详解 135

12.1 在Cocos2d-x中使用纹理 135

12.1.1 Texture的初始化 135

12.1.2 纹理和Sprite的关系 136

12.1.3 POT和NPOT 136

12.1.4 纹理混合 Blend 137

12.1.5 Alpha预乘 138

12.1.6 纹理参数 139

12.1.7 纹理过滤 Texture Filter 140

12.1.8 纹理环绕 142

12.1.9 Mip贴图 143

12.1.10 渲染纹理 145

12.2 管理纹理 146

12.2.1 使用TextureCache管理纹理 146

12.2.2 使用TextureCache加载纹理 148

12.2.3 异步加载纹理 152

12.3 纹理格式 153

12.4 纹理压缩 156

12.4.1 纹理压缩格式对比 157

12.4.2 在Cocos2d-x中使用纹理压缩 158

12.4.3 使ETC1支持透明 159

第13章 显示文字 164

13.1 使用Label 164

13.1.1 LabelTTF详解 164

13.1.2 LabelBMFont详解 166

13.1.3 LabelAtlas详解 167

13.1.4 Label详解 167

13.2 新Label框架剖析 171

13.2.1 整体框架 171

13.2.2 运行流程 173

13.2.3 STRING_TEXTURE类型Label的运行流程 173

13.2.4 使用FontAtlas的Label的运行流程 174

13.2.5 FontAtlas的创建流程 174

13.3 关于中文显示 176

13.3.1 使用中文配置文件csv/XML/plist 177

13.3.2 将代码文件转为UTF-8编码 178

13.3.3 使用iconv转换中文 179

13.4 造字工具 180

13.4.1 使用BMFont工具 180

13.4.2 使用Hiero工具 182

第14章 运行机制 185

14.1 Cocos2d-x内部运行流程 185

14.1.1 Application详解 185

14.1.2 Director详解 187

14.2 Cocos2d-x在Windows下的运行流程 188

14.3 Cocos2d-x在Android下的运行流程 190

14.3.1 启动游戏 190

14.3.2 游戏事件与主循环 192

14.4 Cocos2d-x在iOS下的运行流程 194

14.4.1 启动游戏 195

14.4.2 主循环 197

第15章 渲染机制 198

15.1 渲染树VS渲染命令 198

15.1.1 渲染树 198

15.1.2 渲染命令 199

15.2 Cocos2d-x 3.0渲染框架 200

15.3 渲染命令详解 202

第16章 消息机制 206

16.1 事件通知 206

16.2 NotificationCenter和EventDispatcher 207

16.2.1 使用EventDispatcher 208

16.2.2 相关接口 208

16.2.3 其他监听者 210

16.2.4 使用NotificationCenter 210

16.3 内部流程以及注意事项 210

16.3.1 消息的通知流程 210

16.3.2 消息的注册流程 211

16.3.3 消息的注销流程 212

16.4 小结 212

第17章 Schedule详解 213

17.1 Schedule接口简介 213

17.1.1 回调函数 213

17.1.2 注册回调 214

17.1.3 注销回调 215

17.1.4 时间缩放、暂停、恢复 215

17.1.5 优先级 216

17.1.6 线程安全 216

17.2 Schedule整体结构与运行流程 216

17.2.1 整体结构 216

17.2.2 外部流程 217

17.2.3 更新顺序 218

17.2.4 注册与注销 218

17.3 Schedule使用过程中的问题 219

第3篇 UI与交互篇

第18章 触摸输入 222

18.1 如何监听触摸消息 222

18.1.1 监听触摸消息 222

18.1.2 触摸监听者 222

18.1.3 触摸消息 223

18.1.4 注册监听 224

18.2 触摸输入运行流程 224

18.3 判断点击 226

18.4 多点触摸 228

18.5 点击穿透 229

第19章 文本输入 231

19.1 TextFieldTTF简介 231

19.2 使用TextFieldTTF 232

19.3 扩展TextFieldTTF 232

19.4 详解IME 234

第20章 按钮与重力感应输入 236

20.1 重力感应 236

20.1.1 摇一摇 238

20.1.2 多角度倾斜 238

20.2 物理按键 239

第21章 Menu和MenuItem详解 241

21.1 使用Menu和MenuItem 241

21.2 结构框架与执行流程 241

21.2.1 Menu详解 242

21.2.2 MenuItem详解 243

21.2.3 执行流程 243

21.3 MenuItem详解 244

21.3.1 MenuItemLabel详解 244

21.3.2 MenuItemAtlasFont详解 244

21.3.3 MenuItemFont详解 245

21.3.4 MenuItemSprite详解 245

21.3.5 MenuItemImage详解 245

21.3.6 MenuItemToggle详解 246

21.4 实现TabView 246

第22章 GUI框架概述 248

22.1 GUI框架简介 248

22.1.1 命名空间与头文件 249

22.1.2 工具方法 249

22.1.3 九宫缩放 249

22.2 UIWidget详解 250

22.2.1 保护节点ProtectNode 250

22.2.2 高亮相关 251

22.2.3 位置布局相关 251

22.2.4 触摸相关 252

22.2.5 控件焦点 254

22.2.6 实现自己的Widget 255

22.3 UILayout详解 255

22.3.1 Layout背景 256

22.3.2 裁剪 256

22.3.3 焦点查找 257

22.3.4 Layout布局 257

第23章 GUI框架之功能控件 259

23.1 UIButton控件 259

23.1.1 创建Button 259

23.1.2 加载图片 259

23.1.3 设置九宫 260

23.1.4 设置文字 260

23.2 UICheckBox控件 261

23.2.1 创建CheckBox 261

23.2.2 加载图片 261

23.2.3 选择 262

23.3 UIImageView控件 262

23.3.1 创建ImageView 262

23.3.2 纹理与九宫 262

23.4 UILoadingBar控件 263

23.4.1 创建LoadingBar 263

23.4.2 纹理与九宫 263

23.4.3 方向与进度 263

23.5 UISlider控件 263

23.5.1 创建与加载纹理 264

23.5.2 九宫 264

23.5.3 进度与回调 265

第24章 GUI框架之文本输入和显示 266

24.1 UIText、UITextAtlas和UITextBMFont文本显示控件 266

24.2 UIRichText文本显示控件 267

24.3 UITextField文本输入控件 270

24.3.1 创建TextField 270

24.3.2 触摸相关 270

24.3.3 输入密码 271

24.3.4 设置、获取文本 271

24.3.5 输入回调 272

24.3.6 自动换行与对齐 272

24.4 UIEditBox文本输入控件 272

24.4.1 创建EditBox 273

24.2.2 文本与输入提示文本 274

24.4.3 输入委托 274

24.4.4 输入模式 274

24.4.5 标签与限制 275

第25章 GUI框架之容器控件 276

25.1 UIScrollView容器控件 276

25.1.1 拖曳滚动 276

25.1.2 InnerContainer详解 277

25.2 UIListView容器控件 277

25.3 UIPageView容器控件 279

25.4 UIWebView容器控件 280

25.4.1 加载页面 280

25.4.2 操作页面 281

25.4.3 页面回调 281

第4篇 CocoStudio工具链篇

第26章 CocoStudio概述 284

26.1 CocoStudio是什么 284

26.2 CocoStudio的设计目标 285

26.3 使用CocoStudio 285

26.3.1 使用UI编辑器 286

26.3.2 使用动画编辑器 286

26.3.3 使用数据编辑器 287

26.3.4 使用场景编辑器 287

26.3.5 使用CocoStudio 2.x 288

26.4 管理资源 288

26.5 版本对应 289

第27章 CocoStudio UI编辑器 291

27.1 使用UI编辑器 291

27.2 编写代码 295

27.2.1 加载UI 295

27.2.2 UI动画 295

27.2.3 初始化UI 296

27.2.4 更新UI 297

27.3 分辨率适配 299

27.4 扩展UI编辑器 302

第28章 CocoStudio场景编辑器 303

28.1 使用场景编辑器 303

28.2 组件系统 305

28.3 触发器 308

28.3.1 触发器的使用 308

28.3.2 触发器的代码框架以及运作流程 310

28.3.3 触发器的扩展 310

28.4 加载场景 315

第29章 CocoStudio动画编辑器 316

29.1 骨骼动画的命名规范 316

29.1.1 骨骼的命名 316

29.1.2 动画的命名 317

29.1.3 帧事件的命名 317

29.1.4 整个骨骼动画对象的命名 317

29.2 骨骼动画框架和运行流程 317

29.2.1 骨骼动画框架 317

29.2.2 运行流程 319

29.2.3 初始化 319

29.2.4 运行和更新 320

29.3 使用动画编辑器 321

29.4 编写代码 326

29.4.1 加载骨骼资源 326

29.4.2 创建和播放骨骼动画 327

29.4.3 监听事件 327

29.4.4 动态挂载骨骼 328

29.4.5 换装功能 328

29.4.6 骨骼动画的衔接 329

29.4.7 骨骼动画的渲染优化 330

29.5 骨骼动画的碰撞检测 330

29.5.1 直接矩形检测 330

29.5.2 ColliderDetector手动计算碰撞检测 331

29.5.3 ColliderDetector 使用Box2d碰撞检测 332

29.5.4 ColliderDetector的运行机制和结构 334

第30章 CocoStudio 2.x编辑器 338

30.1 使用Cocos引擎 338

30.2 使用CocoStudio 2.x 339

30.2.1 CocoStudio 2.x界面介绍 339

30.2.2 使用CocoStudio 2.x 341

30.2.3 在程序中加载.csb文件 342

30.3 动画功能 342

30.3.1 在CocoStudio中编辑动画 342

30.3.2 在程序中播放动画 344

30.4 分辨率适配 345

30.5 高级特性 347

30.6 其他特性 353

30.7 在Windows下调试引擎 356

第31章 使用CocosBuilder 358

31.1 CocosBuilder简介 358

31.1.1 CocosBuilder界面简介 358

31.1.2 工作流程 358

31.1.3 常见问题 359

31.2 编写代码加载ccbi 361

31.2.1 创建普通节点 362

31.2.2 绑定到类 362

31.2.3 绑定回调函数 363

31.2.4 绑定成员变量 364

31.2.5 初始化流程 364

31.2.6 在Cocos2d-x 3.x版本中使用 365

31.3 播放动画 365

31.3.1 编辑动画 365

31.3.2 编写代码 367

课课家教育

未登录