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

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

第一篇 基础篇 3

第1章 准备开始 3

1.1 本书学习路线图 3

1.2 使用实例代码 4

第2章 Lua语言基础 7

2.1 环境搭建 7

2.1.1 Lua编辑工具 7

2.1.2 HelloLua实例测试 10

2.2 标识符和保留字 14

2.2.1 标识符 14

2.2.2 保留字 14

2.3 常量和变量 15

2.3.1 常量 15

2.3.2 变量 15

2.3.3 命名规范 15

2.4 注释 16

2.5 Lua数据类型 17

2.5.1 数据类型 17

2.5.2 type函数 18

2.5.3 数据类型转换 18

2.6 运算符 19

2.6.1 算术运算符 20

2.6.2 关系运算符 21

2.6.3 逻辑运算符 22

2.6.4 运算优先级 23

2.7 控制语句 23

2.7.1 分支语句 24

2.7.2 循环语句 25

2.7.3 跳转语句 28

2.8 表类型 29

2.8.1 字典 29

2.8.2 数组 30

2.9 字符串类型 31

2.9.1 字符串截取 31

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章 Hello Cocos2d-x Lua 42

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

3.2 Cocos2d游戏引擎 42

3.2.1 Cocos2d游戏引擎家谱 42

3.2.2 Cocos2d-x引擎 43

3.2.3 JavaScript和Lua绑定 44

3.3 搭建Cocos2d-x Lua开发环境 45

3.3.1 搭建Cocos Code IDE开发环境 45

3.3.2 下载和使用Cocos2d-x Lua官方案例 46

3.4 第一个Cocos2d-x Lua游戏 49

3.4.1 创建工程 49

3.4.2 Cocos Code IDE中运行 53

3.4.3 工程文件结构 54

3.4.4 代码解释 55

3.5 重构HelloLua 59

3.6 Cocos2d-x Lua核心概念 61

3.6.1 导演 62

3.6.2 场景 62

3.6.3 层 63

3.6.4 精灵 65

3.6.5 菜单 65

3.7 Node与Node层级架构 66

3.7.1 Node中重要的操作 66

3.7.2 Node中重要的属性 67

3.7.3 游戏循环与调度 69

3.8 Cocos2d-x Lua坐标系 71

3.8.1 UI坐标 71

3.8.2 OpenGL坐标 72

3.8.3 世界坐标和模型坐标 73

本章小结 77

第4章 标签和菜单 78

4.1 使用标签 78

4.1.1 LabelTTF 79

4.1.2 LabelAtlas 80

4.1.3 LabelBMFont 82

4.1.4 Cocos2d-x 3.x标签类Label 84

4.2 使用菜单 87

4.2.1 文本菜单 88

4.2.2 精灵菜单和图片菜单 90

4.2.3 开关菜单 92

本章小结 94

第5章 精灵 95

5.1 Sprite精灵类 95

5.1.1 创建Sprite精灵对象 95

5.1.2 实例:使用纹理对象创建Sprite 96

5.2 精灵的性能优化 98

5.2.1 使用纹理图集 98

5.2.2 使用精灵帧缓存 101

本章小结 103

第6章 场景与层 104

6.1 场景与层的关系 104

6.2 场景切换 104

6.2.1 场景切换相关函数 104

6.2.2 场景过渡动画 109

6.3 场景的生命周期 111

6.3.1 生命周期函数 111

6.3.2 多场景切换生命周期 114

本章小结 116

第7章 动作、特效和动画 117

7.1 动作 117

7.1.1 瞬时动作 118

7.1.2 间隔动作 123

7.1.3 组合动作 128

7.1.4 动作速度控制 133

7.1.5 函数调用 136

7.2 特效 139

7.2.1 网格动作 139

7.2.2 实例:特效演示 141

7.3 动画 143

7.3.1 帧动画 144

7.3.2 实例:帧动画的使用 144

本章小结 147

第8章 用户事件 148

8.1 事件处理机制 148

8.1.1 事件分发器 149

8.1.2 触摸事件 150

8.1.3 实例:单点触摸事件 152

8.1.4 实例:多点触摸事件 155

8.1.5 键盘事件 158

8.2 加速度计与加速度事件 159

8.2.1 加速度计 159

8.2.2 加速计事件 160

8.2.3 实例:运动的小球 160

本章小结 162

第二篇 进阶篇 165

第9章 游戏背景音乐与音效 165

9.1 Cocos2d-x Lua中音频文件 165

9.1.1 音频文件介绍 165

9.1.2 Cocos2d-x Lua跨平台音频支持 166

9.2 使用Audio Engine引擎 167

9.2.1 音频文件的预处理 167

9.2.2 播放背景音乐 168

9.2.3 停止播放背景音乐 170

9.3 实例:设置背景音乐与音效 172

9.3.1 GameScene场景实现 172

9.3.2 SettingScene场景实现 175

本章小结 178

第10章 粒子系统 179

10.1 问题的提出 179

10.2 粒子系统的基本概念 180

10.2.1 实例:打火机 180

10.2.2 粒子发射模式 181

10.2.3 粒子系统属性 183

10.3 Cocos2d-x内置粒子系统 185

10.3.1 内置粒子系统 185

10.3.2 实例:内置粒子系统 185

10.4 自定义粒子系统 189

10.4.1 代码创建 189

10.4.2 plist文件创建 191

本章小结 194

第11章 瓦片地图 195

11.1 地图的性能问题 195

11.2 Cocos2d-x Lua中瓦片地图API 197

11.3 实例:忍者无敌 199

11.3.1 设计地图 199

11.3.2 程序中加载地图 200

11.3.3 移动精灵 201

11.3.4 检测碰撞 203

11.3.5 滚动地图 207

本章小结 210

第12章 物理引擎 211

12.1 使用物理引擎 212

12.1.1 物理引擎核心概念 212

12.1.2 物理引擎与精灵关系 213

12.2 Cocos2d-x Lua中物理引擎 213

12.2.1 Cocos2d-x Lua物理引擎API 213

12.2.2 实例:HelloPhysicsWorld 217

12.2.3 实例:碰撞检测 220

12.2.4 实例:使用关节 224

本章小结 226

第三篇 数据与网络篇 229

第13章 数据持久化 229

13.1 使用FileUtils访问文件 229

13.1.1 Cocos2d-x Lua中的目录 229

13.1.2 实例:读取文件 230

13.1.3 实例:路径搜索 232

13.2 持久化概述 234

13.3 UserDefault数据持久化 234

13.3.1 UserDefaultAPI 235

13.3.2 实例:保存背景音乐和音效设置 236

13.4 属性列表数据持久化 241

13.4.1 属性列表概述 241

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

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

本章小结 247

第14章 基于HTTP的网络通信 248

14.1 网络结构 248

14.1.1 客户端服务器结构网络 248

14.1.2 点对点结构网络 248

14.2 HTTP与HTTPS协议 249

14.3 使用XMLHttpRequest对象开发客户端 250

14.3.1 使用XMLHttpRequest对象 250

14.3.2 实例:MyNotes 251

14.4 数据交换格式 256

14.5 JSON数据交换格式 258

14.5.1 文档结构 258

14.5.2 JSON解码与编码 259

14.5.3 实例:完善MyNotes 261

本章小结 265

第15章 Node.js与WebSocket网络通信 266

15.1 Node.js 266

15.1.1 Node.js安装 266

15.1.2 Node.js测试 267

15.2 使用WebSocket 269

15.2.1 使用Node.js开发WebSocket服务器端程序 269

15.2.2 Cocos2d-x Lua客户端 271

15.3 实例:WebSocket重构MyNotes 274

15.3.1 WebSocket服务器端开发 274

15.3.2 服务器端Node.js访问SQLite数据库 276

15.3.3 Cocos2d-x Lua客户端开发 279

本章小结 282

第四篇 优化篇 285

第16章 性能优化 285

16.1 合理使用缓存 285

16.1.1 场景与资源 285

16.1.2 缓存创建和清除的时机 287

16.2 图片与纹理优化 290

16.2.1 选择图片格式 290

16.2.2 拼图 292

16.2.3 纹理像素格式 293

16.2.4 纹理缓存异步加载 294

16.2.5 背景图片优化 297

16.3 声音优化 299

16.3.1 声音格式优化 299

16.3.2 声音预处理与清除 300

本章小结 300

第五篇 跨平台移植篇 303

第17章 移植到Android平台 303

17.1 搭建交叉编译和打包环境 303

17.1.1 Android SDK安装 306

17.1.2 管理Android SDK 307

17.1.3 管理Android开发模拟器 308

17.1.4 Android NDK安装 310

17.2 创建Cocos2d-x Lua工程 311

17.3 交叉编译 312

17.4 打包运行 314

17.5 移植问题汇总 315

17.5.1 Lua文件编译问题 315

17.5.2 横屏与竖屏设置问题 315

本章小结 316

第18章 移植到iOS平台 317

18.1 iOS开发环境搭建 317

18.1.1 Xcode安装和卸载 317

18.1.2 Xcode操作界面 320

18.2 创建Cocos2d-x Lua工程 321

18.3 编译与发布 322

18.4 移植问题汇总 323

18.4.1 iOS平台声音移植问题 323

18.4.2 使用PVR纹理格式 324

18.4.3 横屏与竖屏设置问题 326

18.5 多分辨率屏幕适配 327

18.5.1 问题的提出 327

18.5.2 Cocos2d-x Lua屏幕适配 328

18.5.3 分辨率策略 331

18.5.4 纹理图集资源适配 333

18.5.5 瓦片地图资源适配 335

本章小结 336

第六篇实战篇 339

第19章 使用Git管理程序代码版本 339

19.1 代码版本管理工具——Git 339

19.1.1 版本控制历史 339

19.1.2 术语和基本概念 340

19.1.3 Git环境配置 340

19.1.4 Git常用命令 341

19.2 代码托管服务——GitHub 344

19.2.1 创建和配置GitHub账号 344

19.2.2 创建代码库 347

19.2.3 删除代码库 348

19.2.4 派生代码库 348

19.2.5 GitHub协同开发 352

19.3 实例:Cocos2d-x Lua游戏项目协同开发 352

19.3.1 提交到GitHub代码库 353

19.3.2 克隆GitHub代码库 354

19.3.3 重新获得GitHub代码库 355

本章小结 356

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

20.1 迷失航线游戏分析与设计 357

20.1.1 迷失航线故事背景 357

20.1.2 需求分析 357

20.1.3 原型设计 358

20.1.4 游戏脚本 359

20.2 任务1:游戏工程的创建与初始化 359

20.2.1 迭代1.1 :创建工程 359

20.2.2 迭代1.2 :添加资源文件 360

20.2.3 迭代1.3 :添加常量文件SystemConst.lua 362

20.2.4 迭代1.4 :多分辨率支持 365

20.2.5 迭代1.5 :发布到GitHub 367

20.3 任务2:创建Loading场景 367

20.3.1 迭代2.1 :添加场景和层 367

20.3.2 迭代2.2 :Loading动画 369

20.3.3 迭代2.3 :异步加载纹理缓存 370

20.4 任务3:创建Home场景 371

20.4.1 迭代3.1 :添加场景和层 371

20.4.2 迭代3.2 :添加菜单 373

20.5 任务4:创建设置场景 375

20.6 任务5:创建帮助场景 377

20.7 任务6:游戏场景实现 378

20.7.1 迭代6.1 :创建敌人精灵 378

20.7.2 迭代6.2 :创建玩家飞机精灵 383

20.7.3 迭代6.3 :创建炮弹精灵 385

20.7.4 迭代6.4 :初始化游戏场景 387

20.7.5 迭代6.5 :游戏场景菜单实现 392

20.7.6 迭代6.6 :玩家飞机发射炮弹 395

20.7.7 迭代6.7 :炮弹与敌人的碰撞检测 396

20.7.8 迭代6.8 :玩家飞机与敌人的碰撞检测 400

20.7.9 迭代6.9 :玩家飞机生命值显示 402

20.7.10 迭代6.1 0:显示玩家得分情况 403

20.8 任务7:游戏结束场景 403

本章小结 406

第21章 为迷失航线游戏添加广告 407

21.1 使用谷歌AdMob广告 407

21.1.1 注册AdMob帐号 407

21.1.2 管理AdMob广告 407

21.1.3 AdMob广告类型 411

21.1.4 下载谷歌AdMob Ads SDK 411

21.2 为迷失航线游戏Android平台添加AdMob广告 413

21.2.1 Coogle Play服务下载与配置 413

21.2.2 导入libcocos2dx类库工程到Eclipse 416

21.2.3 导入LostRoutes工程到Eclipse 416

21.2.4 编写AdMob相关代码 419

21.2.5 交叉编译、打包和运行 423

21.3 为迷失航线游戏iOS平台添加AdMob广告 423

21.3.1 Cocos2d-x引擎iOS平台下AdMob开发环境搭建 423

21.3.2 编写AdMob相关代码 427

本章小结 431

第22章 把迷失航线游戏发布放到Google play应用商店 432

22.1 谷歌Android应用商店Google play 432

22.2 还有“最后一公里” 432

22.2.1 Lua文件编译 432

22.2.2 添加图标 433

22.2.3 应用程序打包 434

22.3 发布产品 437

22.3.1 上传APK 438

22.3.2 填写商品详细信息 439

22.3.3 定价和发布范围 441

本章小结 443

第23章 把迷失航线游戏发布放到苹果的App Store 444

23.1 苹果的App Store 444

23.2 iOS设备测试 444

23.2.1 创建开发者证书 446

23.2.2 设备注册 451

23.2.3 创建App ID 452

23.2.4 创建配置概要文件 455

23.2.5 设备上运行 458

23.3 还有“最后一公里” 459

23.3.1 添加图标 459

23.3.2 添加启动界面 461

23.3.3 修改发布产品属性 462

23.3.4 为发布进行编译 463

23.3.5 应用打包 468

23.4 发布产品 469

23.4.1 创建应用及基本信息 469

23.4.2 应用定价信息 471

23.4.3 基本信息输入 472

23.4.4 上传应用前的准备 476

23.4.5 上传应用 478

23.5 常见审核不通过的原因 481

23.5.1 功能问题 481

23.5.2 用户界面问题 481

23.5.3 商业问题 481

23.5.4 不当内容 482

23.5.5 其他问题 482

本章小结 482