《Cocos2d-x实战 Lua卷 第2版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:关东升著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302457305
  • 页数:445 页
图书介绍:本书系统介绍基于Lua脚本语言的Cocos2d-x手机游戏开发。全书首先论述Cocos2d-x编程的原理,然后介绍基于Lua语言设计的应用案例,偏重实战。适合作为手机游戏开发人员工具图书及学习Lua脚本游戏编程的入门教材。

第1章 准备开始 1

1.1 本书学习路线图 1

1.2 使用实例代码 3

第一篇 基础篇 7

第2章 Lua语言基础 7

2.1 Lua开发环境搭建 7

2.1.1 安装LDT工具 7

2.1.2 HelloLua实例测试 11

2.2 标识符和保留字 15

2.2.1 标识符 15

2.2.2 保留字 16

2.3 常量和变量 16

2.3.1 常量 16

2.3.2 变量 16

2.3.3 命名规范 16

2.4 注释 17

2.5 Lua数据类型 18

2.5.1 数据类型 18

2.5.2 type函数 19

2.5.3 数据类型转换 19

2.6 运算符 20

2.6.1 算术运算符 20

2.6.2 关系运算符 22

2.6.3 逻辑运算符 23

2.6.4 运算优先级 24

2.7 控制语句 24

2.7.1 分支语句 24

2.7.2 循环语句 26

2.7.3 跳转语句 28

2.8 table类型 29

2.8.1 字典 29

2.8.2 数组 30

2.9 字符串类型 31

2.9.1 字符串截取 32

2.9.2 字符串转换 32

2.9.3 字符串查询 33

2.9.4 字符串格式化 33

2.10 函数 34

2.10.1 使用函数 34

2.10.2 变量作用域 35

2.10.3 多重返回值 35

2.11 闭包函数 36

2.11.1 嵌套函数 36

2.11.2 返回函数 37

2.11.3 使用闭包表达式 38

2.12 Lua中的面向对象 39

2.12.1 Lua中的对象 39

2.12.2 类的实现 40

本章小结 41

第3章 Cocos2d-x Lua API与环境搭建 42

3.1 移动平台游戏引擎介绍 42

3.2 Cocos2d家谱 42

3.3 Cocos2d-x设计目标 43

3.4 搭建Cocos2d-x Lua API开发环境 44

3.4.1 安装Visual Studio开发工具 45

3.4.2 下载和使用Cocos2d-x Lua API官方案例 45

3.4.3 配置Cocos2d-x环境 47

3.4.4 使用API文档 50

本章小结 50

第4章 Hello Cocos2d-x 51

4.1 第一个Cocos2d-x Lua API游戏 51

4.1.1 创建工程 51

4.1.2 工程文件结构 52

4.1.3 重构HelloLua工程 52

4.1.4 运行HelloLua工程 54

4.1.5 调试HelloLua工程 56

4.2 Cocos2d-x核心概念 59

4.2.1 导演 59

4.2.2 场景 59

4.2.3 层 60

4.3 Node与Node层级架构 61

4.3.1 Node中重要的操作 61

4.3.2 Node中重要的属性 63

4.3.3 游戏循环与调度 65

4.4 Cocos2d-x坐标系 67

4.4.1 UI坐标 67

4.4.2 OpenGL坐标 67

4.4.3 世界坐标和模型坐标 68

本章小结 72

第5章 标签和菜单 73

5.1 游戏中的文字 73

5.2 使用标签 74

5.2.1 Label类 74

5.2.2 实例:使用系统字体和TTF字体 75

5.2.3 实例:使用位图字体 76

5.2.4 LabelAtlas类 78

5.3 使用菜单 79

5.3.1 文本菜单 80

5.3.2 精灵菜单和图片菜单 81

5.3.3 开关菜单 84

本章小结 85

第6章 精灵 86

6.1 Sprite精灵类 86

6.1.1 创建Sprite精灵对象 86

6.1.2 实例:使用纹理对象创建Sprite对象 87

6.2 精灵的性能优化 88

6.2.1 使用纹理图集 89

6.2.2 使用精灵帧缓存 91

本章小结 93

第7章 场景与层 94

7.1 场景与层的关系 94

7.2 场景切换 94

7.2.1 场景切换相关函数 94

7.2.2 场景过渡动画 99

7.3 场景的生命周期 101

7.3.1 生命周期函数 101

7.3.2 多场景切换生命周期 103

本章小结 105

第8章 动作、特效和动画 106

8.1 动作 106

8.1.1 瞬时动作 107

8.1.2 间隔动作 111

8.1.3 组合动作 116

8.1.4 动作速度控制 120

8.1.5 函数调用 123

8.2 特效 126

8.2.1 网格动作 127

8.2.2 实例:特效演示 127

8.3 动画 129

8.3.1 帧动画 129

8.3.2 实例:帧动画使用 129

本章小结 132

第9章 用户事件 133

9.1 事件处理机制 133

9.1.1 事件分发器 134

9.1.2 触摸事件 135

9.1.3 实例:单点触摸事件 137

9.1.4 实例:多点触摸事件 140

9.1.5 键盘事件 142

9.2 加速度计与加速度事件 144

9.2.1 加速度计 144

9.2.2 加速度计事件 144

9.2.3 实例:运动的小球 145

本章小结 146

第二篇 进阶篇 149

第10章 游戏背景音乐与音效 149

10.1 Cocos2d-x Lua API中音频文件 149

10.1.1 音频文件介绍 149

10.1.2 Cocos2d-x跨平台音频支持 150

10.2 使用AudioEngine引擎 151

10.2.1 音频文件的预处理 151

10.2.2 播放背景音乐 152

10.2.3 停止播放背景音乐 154

10.3 实例:设置背景音乐与音效 156

10.3.1 GameScene场景实现 156

10.3.2 SettingScene场景实现 158

本章小结 161

第11章 粒子系统 162

11.1 问题的提出 162

11.2 粒子系统基本概念 163

11.2.1 实例:打火机 163

11.2.2 粒子发射模式 165

11.2.3 粒子系统属性 165

11.3 内置粒子系统 167

11.3.1 内置粒子系统 167

11.3.2 实例:内置粒子系统 168

11.4 自定义粒子系统 170

11.4.1 代码创建 171

11.4.2 plist文件创建 173

本章小结 176

第12章 瓦片地图 177

12.1 地图性能问题 177

12.2 瓦片地图API 178

12.3 实例:忍者无敌 180

12.3.1 设计地图 180

12.3.2 程序中加载地图 181

12.3.3 移动精灵 182

12.3.4 检测碰撞 184

12.3.5 滚动地图 187

本章小结 190

第13章 物理引擎 191

13.1 使用物理引擎 192

13.1.1 物理引擎核心概念 192

13.1.2 物理引擎与精灵关系 193

13.2 Cocos2d-x中物理引擎 193

13.2.1 Cocos2d-x物理引擎Lua API 193

13.2.2 实例:HelloPhysicsWorld 197

13.2.3 实例:接触与碰撞检测 200

13.2.4 实例:使用关节 203

本章小结 205

第14章 Cocos2d-x GUI控件 206

14.1 按钮 207

14.2 ImageView 209

14.3 文本控件 210

14.3.1 Text 210

14.3.2 TextBMFont 210

14.3.3 Rich Text 211

14.4 RadioButton和RadioButtonGroup 213

14.5 CheckBox 215

14.6 LoadingBar 217

14.7 滑块控件 218

本章小结 220

第15章 Cocos2d-x中的3D特性 221

15.1 一些3D概念 221

15.1.1 网格和模型 221

15.1.2 相机 221

15.1.3 投影 221

15.2 使用3D精灵 223

15.2.1 创建Sprite3D对象 223

15.2.2 实例:使用模型和纹理Sprite3D对象 223

15.3 3D模型文件格式 226

15.4 使用相机 227

15.4.1 创建和设置Camera对象 227

15.4.2 实例:使用Camera对象 227

15.5 3D粒子系统 229

15.5.1 创建PUParticleSystem3D对象 229

15.5.2 实例:创建Particle Universe 3D粒子 229

本章小结 231

第三篇 数据与网络篇 235

第16章 文件访问操作和数据持久化 235

16.1 使用FileUtils访问文件 235

16.1.1 Cocos2d-x Lua API中的目录 235

16.1.2 实例:读取文件 236

16.1.3 实例:路径搜索 238

16.2 持久化概述 239

16.3 UserDefault数据持久化 240

16.3.1 UserDefault API 240

16.3.2 实例:保存背景音乐和音效设置 241

16.4 属性列表数据持久化 245

16.4.1 属性列表概述 245

16.4.2 实例:访问根为字典结构的属性列表文件 246

16.4.3 实例:访问根为列表结构的属性列表文件 249

本章小结 251

第17章 基于HTTP网络通信 252

17.1 网络结构 252

17.1.1 客户端服务器结构网络 252

17.1.2 点对点结构网络 253

17.2 HTTP与HTTPS协议 253

17.3 使用XMLHttpRequest对象开发客户端 254

17.3.1 使用XMLHttpRequest对象 254

17.3.2 实例:MyNotes 255

17.4 数据交换格式 259

17.5 JSON数据交换格式 261

17.5.1 文档结构 261

17.5.2 JSON解码与编码 262

17.5.3 实例:完善MyNotes 264

本章小结 267

第18章 Node.js与WebSocket网络通信 268

18.1 Node.js 268

18.1.1 Node.js安装 268

18.1.2 Node.js测试 269

18.2 使用WebSocket 270

18.2.1 使用Node.js开发WebSocket服务器端程序 271

18.2.2 Cocos2d-x Lua API客户端 272

本章小结 275

第四篇 优化篇 279

第19章 性能优化 279

19.1 合理使用缓存 279

19.1.1 场景与资源 279

19.1.2 缓存创建和清除时机 280

19.2 图片与纹理优化 284

19.2.1 选择图片格式 284

19.2.2 拼图 285

19.2.3 纹理像素格式 286

19.2.4 纹理缓存异步加载 287

19.2.5 背景图片优化 290

19.3 声音优化 291

19.3.1 声音格式优化 291

19.3.2 声音预处理与清除 292

本章小结 293

第五篇 多平台移植篇 297

第20章 移植到Android平台 297

20.1 搭建交叉编译和打包环境 297

20.1.1 Android SDK安装 300

20.1.2 管理Android SDK 301

20.1.3 管理Android开发模拟器 302

20.1.4 Android NDK安装 304

20.1.5 设置环境变量 304

20.2 交叉编译、打包和运行 306

20.2.1 使用cocos命令行工具 306

20.2.2 Android.mk编译文件 306

20.3 移植问题汇总 309

20.3.1 Lua文件编译问题 309

20.3.2 横屏与竖屏设置问题 309

本章小结 310

第21章 移植到iOS平台 311

21.1 iOS开发环境搭建 311

21.1.1 Xcode安装和卸载 311

21.1.2 Xcode操作界面 313

21.2 编译与运行 315

21.3 移植问题汇总 317

21.3.1 iOS平台声音移植问题 317

21.3.2 使用PVR纹理格式 319

21.3.3 横屏与竖屏设置问题 320

21.4 多分辨率屏幕适配 320

21.4.1 问题的提出 321

21.4.2 Cocos2d-x Lua API屏幕适配 321

21.4.3 分辨率策略 324

21.4.4 纹理图集资源适配 326

21.4.5 瓦片地图资源适配 328

本章小结 328

第六篇 实战篇 331

第22章 使用Git管理程序代码版本 331

22.1 代码版本管理工具——Git 331

22.1.1 版本控制历史 331

22.1.2 术语和基本概念 332

22.1.3 Git环境配置 332

22.1.4 Git常用命令 333

22.2 代码托管服务——GitHub 335

22.2.1 创建和配置GitHub账号 336

22.2.2 创建代码库 339

22.2.3 删除代码库 341

22.2.4 派生代码库 341

22.2.5 GitHub协同开发 344

22.3 实例:Cocos2d-x游戏项目协同开发 345

22.3.1 提交到GitHub代码库 345

22.3.2 克隆GitHub代码库 348

22.3.3 重新获得GitHub代码库 348

本章小结 349

第23章 Cocos2d-x Lua API敏捷开发项目实战——迷失航线手机游戏 350

23.1 迷失航线游戏分析与设计 350

23.1.1 迷失航线故事背景 350

23.1.2 需求分析 350

23.1.3 原型设计 351

23.1.4 游戏脚本 352

23.2 任务1:游戏工程的创建与初始化 353

23.2.1 迭代1.1:创建工程 353

23.2.2 迭代1.2:添加资源文件 353

23.2.3 迭代1.3:添加常量文件SystemConst.lua 355

23.2.4 迭代1.4:多分辨率支持 357

23.2.5 迭代1.5:发布到GitHub 359

23.3 任务2:创建Loading场景 359

23.3.1 迭代2.1:添加场景和层 359

23.3.2 迭代2.2:Loading动画 361

23.3.3 迭代2.3:异步加载纹理缓存 362

23.4 任务3:创建Home场景 363

23.4.1 迭代3.1:添加场景和层 363

23.4.2 迭代3.2:添加菜单 364

23.5 任务4:创建设置场景 366

23.6 任务5:创建帮助场景 368

23.7 任务6:游戏场景实现 368

23.7.1 迭代6.1:创建敌人精灵 369

23.7.2 迭代6.2:创建玩家飞机精灵 373

23.7.3 迭代6.3:创建炮弹精灵 375

23.7.4 迭代6.4:初始化游戏场景 377

23.7.5 迭代6.5:游戏场景菜单实现 381

23.7.6 迭代6.6:玩家飞机发射炮弹 384

23.7.7 迭代6.7:炮弹与敌人的接触检测 385

23.7.8 迭代6.8:玩家飞机与敌人的接触检测 388

23.7.9 迭代6.9:玩家飞机生命值显示 390

23.7.10 迭代6.10:显示玩家得分情况 390

23.8 任务7:游戏结束场景 391

本章小结 394

第24章 把迷失航线游戏发布到Google play应用商店 395

24.1 谷歌Android应用商店Google play 395

24.2 “最后一公里” 396

24.2.1 Lua文件编译 396

24.2.2 添加图标 397

24.2.3 生成数字签名文件 397

24.2.4 应用程序打包 398

24.3 发布产品 399

24.3.1 上传APK 399

24.3.2 填写商品详细信息 401

24.3.3 定价和发布范围 403

本章小结 405

第25章 把迷失航线游戏发布到苹果App Store应用商店 406

25.1 苹果的App Store 406

25.2 “最后一公里” 408

25.2.1 添加图标 408

25.2.2 添加启动界面 409

25.2.3 修改发布产品属性 413

25.3 iOS设备测试 415

25.3.1 Xcode设置 415

25.3.2 设备设置 417

25.4 为发布进行编译 419

25.4.1 创建开发者证书 419

25.4.2 创建App ID 425

25.4.3 创建描述文件 427

25.4.4 发布编译 431

25.5 发布上架 432

25.5.1 创建应用 433

25.5.2 应用定价 435

25.5.3 基本信息输入 436

25.5.4 上传应用 440

25.5.5 提交审核 442

25.6 常见审核通不过的原因 444

25.6.1 功能问题 444

25.6.2 用户界面问题 444

25.6.3 商业问题 444

25.6.4 不当内容 445

25.6.5 其他问题 445

本章小结 445