精通Cocos2d-x游戏开发
新华书店全新正版,极速发货,假一罚十,可开电子发票,请放心购买。
¥
63.06
6.3折
¥
99.8
全新
仅1件
作者王永宝
出版社清华大学出版社
ISBN9787302461258
出版时间2017-03
装帧其他
开本其他
定价99.8元
货号1201473341
上书时间2024-10-12
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
王永宝,自高一起就自学编程,至今10年有余。酷爱游戏开发,熟练掌握C/C++、Lua和C#等编程语言,擅长网络编程、高并发服务端架构设计、客户端框架设计和OpenGL等技术。2010年参加广东省“专业杯”软件设计大赛,在31所院校的86支队伍的激烈竞争中,凭借一个月内使用三门语言开发的塔防游戏而获得了一等奖。同年进入深圳市饭后科技有限公司,担任过C++服务端主程、Unity3D主程和Cocos2d-x主程,并作为技术负责人负责了多款游戏的开发。业余时间潜心研究游戏开发,也开发了多款游戏。
目录
篇 实用技术篇
章 文件读写 2
1.1 使用UserDefault 2
1.2 读写XML文件 4
1.2.1 XML格式简介 4
1.2.2 使用TinyXML读取XML 5
1.2.3 使用TinyXML写入XML 6
1.3 读写Plist文件 7
1.3.1 Plist格式简介 7
1.3.2 读写Plist文件 8
1.4 读取CSV文件 9
1.4.1 解析CSV 10
1.4.2 描述复杂结构 11
1.5 读写二进制文件 11
第2章 加密解密 15
2.1 加密解密基础 15
2.1.1 公钥/私钥与非对称加密 15
2.1.2 信息摘要与数字签名 16
2.1.3 数字证书 17
2.2 防止内存修改 17
2.3 对资源的加密解密 18
2.3.1 使用TexturePacker加密纹理 18
2.3.2 对Lua脚本进行加密 19
2.3.3 自定义Lua脚本加密解密 22
2.3.4 自定义图片加密解密 24
2.4 使用加固工具 27
2.4.1 360加固保加固步骤 27
2.4.2 Android应用签名 28
第3章 增量更新 32
3.1 使用AssetsManagerEx 32
3.2 搭建增量更新服务器 35
3.3 Manifest文件详解 36
3.4 AssetsManagerEx内部实现流程简析 38
3.5 自动打包工具 40
第4章 声音与音效 51
4.1 选择音频格式 51
4.2 使用SimpleAudioEngine 53
4.3 使用AudioEngine 54
4.4 声音音效相关的经验和技巧 56
第5章 分辨率适配 58
5.1 Cocos2d-x适配策略 58
5.1.1 分辨率适配策略 58
5.1.2 坐标编码 60
5.1.3 OpenGL窗口与可视化窗口 61
5.1.4 setDesignResolutionSize详解 62
5.2 分辨率适配经验 63
5.2.1 宽度或高度锁定 63
5.2.2 计算设计分辨率 64
5.2.3 场景固定内容 66
5.2.4 经验小结 67
5.3 CocoStudio分辨率适配 67
第6章 CocoStudio最佳实践 68
6.1 高效创建CSB 68
6.1.1 简单方案 68
6.1.2 缓存方案 69
6.1.3 克隆方案 70
6.2 异步加载CSB 74
6.3 高效播放CSB动画 77
第7章 调试Cocos2d-x 78
7.1 控制台调试 78
7.2 使用KxDebuger调试Cocos2d-x 81
第8章 调试技巧总结 84
8.1 初级调试技巧 84
8.1.1 基础操作 84
8.1.2 启动调试 86
8.1.3 条件断点 86
8.1.4 监视技巧 88
8.2 不错调试技巧 90
8.2.1 远程调试 90
8.2.2 coredump调试 92
8.2.3 使用Bugly捕获崩溃堆栈 92
8.2.4 命中断点 93
8.2.5 数据断点 96
8.2.6 即时窗口 97
8.2.7 多线程调试 97
8.2.8 性能调试 97
8.3 记一次内存泄漏调试 100
8.3.1 内存泄漏表象 100
8.3.2 初步分析 101
8.3.3 排查问题 101
8.3.4 修改代码定位泄漏点 102
8.3.5 开始调试 103
第9章 物理引擎——Box2d基础 107
9.1 核心概念 107
9.2 工作流程 108
9.3 物理世界World 110
9.4 Body和Shape 111
9.4.1 刚体的碰撞 111
9.4.2 创建刚体 112
9.5 关节Joint 114
9.5.1 使用关节 114
9.5.2 旋转关节RevoluteJoint 115
9.5.3 平移关节PrismaticJoint 117
9.5.4 距离关节DistanceJoint 118
9.5.5 滑轮关节PulleyJoint 118
9.5.6 鼠标关节MouseJoint 119
9.5.7 齿轮关节GearJoint 120
9.5.8 滚轮关节WheelJoint 122
9.5.9 焊接关节WeldJoint 123
9.5.10 摩擦关节FrictionJoint 124
9.5.11 绳索关节RopeJoint 125
0章 物理引擎——应用到Cocos2d-x 126
10.1 物体的运动 126
10.1.1 施加力和冲量 126
10.1.2 角力矩和角冲量 127
10.2 碰撞检测 127
10.2.1 碰撞监听 127
10.2.2 碰撞过滤 129
10.3 Box2d的调试渲染 130
10.4 在Cocos2d-x中使用Box2d 130
10.4.1 物理世界 131
10.4.2 物理Sprite 133
10.4.3 碰撞处理 136
10.5 Box2d的相关工具 139
10.5.1 PhysicsEditor介绍 139
10.5.2 BoxCAD介绍 142
10.5.3 Physics Body Editor介绍 143
10.5.4 Vertex Helper介绍 144
1章 图元渲染 145
11.1 使用DrawingPrimitives接口绘制图元 145
11.1.1 如何绘制图元 145
11.1.2 半透明效果 146
11.1.3 抗锯齿 147
11.2 使用DrawNode绘制图元 147
11.3 渲染接口详解 147
11.3.1 绘制点 148
11.3.2 绘制线段、矩形、多边形与圆形 148
11.3.3 绘制贝塞尔曲线 148
11.3.4 绘制CardinalSpline 149
11.3.5 绘制凯特摩曲线 149
11.3.6 绘制实心图元 149
11.4 小结 150
2章 Spine骨骼动画 151
12.1 Spine功能简介 151
12.2 Spine结构 152
12.3 使用Spine 154
12.3.1 加载Spine 154
12.3.2 播放动画 155
12.3.3 动画回调 156
12.3.4 显示控制 158
12.4 Spine不错技巧 161
12.4.1 混合动画 161
12.4.2 缓存Spine骨骼动画 162
12.4.3 异步加载Spine骨骼 163
12.4.4 Spine的性能优化 169
3章 2D、3D粒子特效 172
13.1 2D粒子特效 172
13.1.1 粒子系统简介 172
13.1.2 手动创建粒子系统 173
13.1.3 使用Cocos2d-x内置的粒子系统 175
13.1.4 使用Plist文件加载粒子系统 175
13.1.5 操作粒子系统 176
13.2 2D粒子系统运行流程 179
13.2.1 流程简介 179
13.2.2 粒子的更新和渲染 180
13.3 3D粒子特效 180
13.3.1 组件系统 181
13.3.2 Particle Universe支持的组件 182
13.4 使用Particle Universe粒子系统 184
13.4.1 使用PUParticleSystem3D 184
13.4.2 PUParticleSystem3D相关接口 187
13.5 3D粒子系统源码简析 189
13.5.1 ParticleSystem3D结构 189
13.5.2 初始化流程 190
4章 裁剪与遮罩 194
14.1 片段测试 194
14.1.1 裁剪测试 195
14.1.2 Alpha测试 195
14.1.3 模板测试 195
14.1.4 深度测试 196
14.2 裁剪 197
14.2.1 使用ClippingRectangleNode 197
14.2.2 ClippingRectangleNode的实现 198
14.3 遮罩 199
14.3.1 ScrollViewDemo示例 199
14.3.2 HoleDemo示例 201
14.3.3 详解HoleDemo示例 203
14.3.4 ClippingNode的实现 204
5章 使用Shader——GLSL基础 212
15.1 Shader简介 212
15.2 图形渲染管线 212
15.2.1 顶点处理器 215
15.2.2 片段处理器 215
15.2.3 插值计算 216
15.3 GLSL基础语法 217
15.3.1 数据类型和变量 217
15.3.2 操作符 218
15.3.3 变量修饰符、统一变量和属性变量 219
15.3.4 易变变量 219
15.3.5 语句与函数 220
15.3.6 Shader简单示例 220
15.4 在OpenGL中使用Shader 221
15.4.1 在OpenGL中创建Shader 221
15.4.2 属性变量 224
15.4.3 统一变量 226
15.4.4 错误处理 227
15.4.5 清理工作 228
15.5 在Cocos2d-x中使用Shader 228
15.5.1 Cocos2d-x的Shader架构 228
15.5.2 Cocos2d-x内置Shader规则 229
15.5.3 编写Shader 232
15.5.4 使用Shader的步骤 234
6章 使用Shader——常用特效 236
16.1 Blur模糊效果 236
16.2 OutLine描边效果 238
16.3 RGB、HSV与HSL效果 240
16.4 调整色相 241
16.5 流光效果 243
第2篇 Lua篇
7章 Lua基础概述 248
17.1 类型与值 248
17.2 操作符 249
17.2.1 算术操作符 249
17.2.2 关系操作符 249
17.2.3 逻辑操作符 250
17.2.4 其他操作符 250
17.3 语句 250
17.3.1 赋值语句 250
17.3.2 语句块 251
17.3.3 条件语句 251
17.3.4 循环语句 251
17.4 函数 252
17.4.1 定义函数 252
17.4.2 调用函数 252
17.4.3 函数参数 253
17.4.4 尾调用 253
17.5 闭包与泛型for 254
17.5.1 闭包 254
17.5.2 泛型for 255
8章 Lua——table 257
18.1 使用table 257
18.1.1 创建table 257
18.1.2 访问table 258
18.1.3 修改table 258
18.1.4 删除table 258
18.1.5 遍历table 259
18.2 元表metatable 259
18.2.1 元方法 260
18.2.2 算术、关系与连接元方法 260
18.2.3 特殊的元方法 261
18.2.4 __index元方法 262
18.2.5 __newindex元方法 262
18.2.6 __mode元方法 263
18.3 packages介绍 264
18.3.1 require()方法 264
18.3.2 编写模块 265
18.4 面向对象 266
18.4.1 定义类 266
18.4.2 实例化 267
18.4.3 继承 268
18.5 table库 269
18.5.1 插入 269
18.5.2 排序 269
18.5.3 pack()和unpack()方法 270
18.5.4 table长度 270
9章 Lua与C的通信 271
19.1 准备工作 271
19.1.1 头文件与链接库 272
19.1.2 lua_State指针 272
19.1.3 堆栈 273
19.1.4 压入堆栈 273
19.1.5 访问堆栈 274
19.1.6 堆栈的其他操作 275
19.2 操作table 275
19.2.1 如何将table传入Lua 275
19.2.2 如何获取Lua返回的table 276
19.3 C/C++中调用Lua 277
19.3.1 执行Lua片段 277
19.3.2 执行Lua脚本文件 278
19.3.3 调用Lua函数 279
19.4 注册C/C++函数给Lua调用 279
19.5 将C++的类传给Lua 281
第20章 Cocos2d-x原生Lua框架详解 284
20.1 Cocos2d-x原生Lua框架结构 284
20.1.1 Lua核心层 284
20.1.2 Lua脚本引擎 285
20.1.3 Cocos2d-x到Lua的转换层 285
20.1.4 Lua辅助层 285
20.2 使用Cocos2d-x原生Lua框架 285
20.2.1 在Cocos2d-x中调用Lua 285
20.2.2 在Lua中操作Cocos2d-x 286
20.3 Cocos2d-x原生Lua框架运行流程 289
20.3.1 LuaEngine初始化流程 289
20.3.2 加载Lua脚本 291
20.3.3 Cocos2d-x到Lua的事件分发 293
20.3.4 Lua辅助层初始化流程 297
20.3.5 Lua辅助层的实用工具 298
20.4 使用genbindings.py导出自定义类 302
20.4.1 各个平台的环境搭建 303
20.4.2 编写要导出的C++的类 304
20.4.3 编写ini配置文件 304
20.4.4&nbs
— 没有更多了 —
以下为对购买帮助不大的评价