《Cocos2d-x 之Lua 核心编程》是触控教育部门策划出版的首部图书,是触控官方培训用书,众多业界大牛不吝赞誉。全书基于 Cocos2d-Lua v3.3 Final 版本撰写,由于 Quick 框架对接口稳定做所作的 贡献,本是与引擎功能模块相关的章节适用于 Cocos2d-Lua 3.x 所有版本。目录结 构与环境搭建的相关章节适用于 Cocos2d-Lua v3.3 Final。本书适用于Quick-Cocos2dx-Community的所有版本,Quick-Cocos2dx-Community是众多网络大神基于官方Cocos2d-Lua v3.3 Final 版本改进而来。兼容Cocos2d-Lua 3.x 所有功能,并在功能和性能上有重大提升。
《Cocos2d-x 之Lua 核心编程》系统论述了Cocos2dx Lua开发的核心技术。本书从Lua语言基础开始,全面介绍了Cocos2dx Lua的基础知识、基本应用和高级编程技术,并最终介绍了游戏的实战开发。全书贯穿理论结合实践的编写方式,各个章节都提供了配套实例。其中第4章和第6章以实际作品《Fruit Fest》展示了完整的游戏开发流程。 本书适合作为从事移动开发、手机游戏开发,尤其是基于Cocos2dx进行游戏开发的广大读者的案头工具图书。
序(王哲)
前言
第1章Cocos2dLua
1.1概述
1.1.1Cocos2d 的起源
1.1.2Cocos2dx 的诞生
1.1.3Cocos2dLua 的发展
1.2版本介绍
1.2.1Cocos2dx 版本介绍(C++)
1.2.2Cocos2dLua 版本介绍
第2章Lua编程
2.1Lua 在 Windows 下的运行环境搭建
2.1.1安装
2.1.2运行
2.2Lua 基础
2.2.1Lua介绍
2.2.2Lua 语法
2.3Lua 进阶
2.3.1Metatable(元表)
2.3.2重要元方法介绍
2.3.3封装
2.3.4继承
2.3.5多态
第3章CococsLua基础
3.1Windows 下的 Cocos2dLua 开发环境配置
3.1.1安装 Cocos2dLua
3.1.2安装 Sublime 与 QuickXDev
3.1.3测试开发环境
3.2引擎架构与目录结构
3.2.1引擎架构
3.2.2引擎文件结构
3.2.3项目文件结构
3.3MVC 框架
3.3.1什么是 MVC
3.3.2Quick 中的类实现
3.3.3父类为 function 或者 C++ Object 的类
3.3.4父类为 Lua object
3.3.5两种继承的异同
3.3.6Quick 的 MVC 实现
3.4基础概念
3.4.1导演
3.4.2节点
3.4.3场景
3.4.4层
3.4.5精灵
3.5坐标系
3.5.1笛卡尔坐标系
3.5.2屏幕坐标系 和 Cocos2dLua 坐标系
3.5.3世界坐标系VS 本地坐标系
3.5.4锚点
3.5.5忽略锚点
3.5.6ZOrder 与渲染顺序
3.6文本标签
3.6.1TTF 文本标签
3.6.2BMFont 文本标签
3.6.3UILabel 控件
3.6.4Mac下使用 Glyph Designer 制作字体
3.6.5Windows 下使用 BMFont 制作字体
3.7按钮
3.7.1UIButton 按钮事件
3.7.2UIPushButton 按钮
3.7.3UICheckBoxButton 按钮
3.7.4UICheckBoxButtonGroup 按钮
3.8场景转换
3.8.1概念
3.8.2带转场特效的场景
3.8.3场景转换示例
3.9动作
3.9.1瞬时动作
3.9.2有限时间动作
3.9.3复合动作
3.9.4变速动作
3.9.5节点与动作相关的接口
3.10序列帧动画
3.10.1精灵表单
3.10.2播放序列帧动画
3.10.3动画缓存
3.11调度器
3.11.1全局调度器
3.11.2节点调度器
3.12事件分发机制
3.12.1节点事件
3.12.2帧事件
3.12.3键盘事件
3.12.4加速计事件
3.12.5触摸事件
3.13多分辨率适配
3.13.1Cocos2dx 多分辨率适配
3.13.2Cocos2dLua 中的多分辨率适配
第4章消除游戏实战(一)
4.1Fruit Fest(1): 主场景
4.1.1游戏玩法
4.1.2美术设计
4.1.3分辨率适配策略
4.1.4主场景
4.2Fruit Fest(2): 创建 PlayScene
4.2.1准备 BMFont
4.2.2创建 PlayScene
4.2.3添加转场代码
4.2.4添加 UI
4.3Fruit Fest(3): 初始化水果矩阵
4.3.1水果类
4.3.2矩阵算法
4.3.3掉落算法
4.3.4矩阵初始化的代码实现
4.4Fruit Fest(4): 选中水果
4.4.1绑定触摸事件
4.4.2清除已高亮区域
4.4.3高亮算法
4.4.4分数算法
4.5Fruit Fest(5): 消除与掉落
4.5.1消除高亮水果
4.5.2掉落与补全
第5章Cocos2dLua进阶
5.1UI控件
5.1.1输入控件
5.1.2进度条控件
5.1.3滑动条控件
5.1.4滚动视图控件
5.1.5列表视图控件
5.1.6分页视图控件
5.2瓦片地图
5.2.1用Tiled制作瓦片地图
5.2.2地图视角
5.2.3在Cocos2dLua中使用TMX
5.3精灵批处理
5.3.1手动批处理
5.3.2自动批处理
5.3.3手动批处理VS自动批处理
5.4碰撞检测
5.4.1点与点的碰撞
5.4.2点与矩形的碰撞
5.4.3圆与圆之间的碰撞
5.4.4轴对齐矩形之间的碰撞
5.4.5非轴对齐矩形之间的碰撞
5.5内存管理
5.5.1Lua内存管理
5.5.2Cocos2dLua内存管理
5.5.3纹理缓存
5.5.4精灵帧缓存
5.6数据与存储
5.6.1JSON数据
5.6.2crypto数据编码
5.6.3UserDefault数据存储
5.6.4GameState数据存储
5.6.5文件读写
5.7背景音乐与音效
5.7.1支持的平台与格式
5.7.2Quick框架声音模块
5.8粒子系统
5.8.1什么是粒子系统
5.8.2Cocos2dLua中的粒子系统
5.8.3粒子系统批处理节点
5.8.4粒子属性
5.8.5粒子编辑器介绍
5.8.6使用粒子系统
第6章消除游戏实战(二)
6.1Fruit Fest(6): 过关与信息存储
6.1.1添加进度条
6.1.2过关与数据持久化
6.2Fruit Fest(7): 爆炸特效与声音
6.2.1爆炸特效
6.2.2游戏音乐
6.2.3后记
第7章Cocos2dLua高级
7.1网络通信
7.1.1network
7.1.2SocketTCP
7.1.3WebSocket
7.2物理引擎
7.2.1创建带物理世界的scene
7.2.2创建物理边界
7.2.3创建受重力作用的sprite
7.2.4碰撞检测
7.2.5完整示例
7.3摄像机
7.3.1OpenGL视口
7.3.2cc.Camera
7.3.3场景的默认摄像机
7.3.4自定义摄像机
7.4自定义事件
7.4.1加载EventProtocol组件
7.4.2主要接口
7.4.3完整示例
7.5有限状态机
7.5.1基本用法
7.5.2完整示例
7.6扩展Lua接口
7.6.1Lua Binding
7.6.2Lua栈
7.6.3tolua++
7.6.4Lua Binding实战:扩展spine接口
第8章打包与发布
8.1Mac下编译Andriod版本
8.1.1安装JDK
8.1.2安装ADT
8.1.3安装NDK
8.1.4安装Apache Ant
8.1.5编译项目
8.2Mac下编译iOS版本
8.2.1先决条件
8.2.2Debug真机调试
8.2.3Release打包
8.3Windows下编译Android版本
8.3.1安装JDK
8.3.2安装ADT
8.3.3安装NDK
8.3.4安装Apache Ant
8.3.5编译项目
作为使用Lua进行Cocos开发的专业图书,本书非常重要!它不但在Lua语言和引擎方面有详细的讲解,更在引擎的诸多细节上花费了大量心思,包括缓存、内存管理与监控、数据加密等,是不可多得的Cocos2d-x开发进阶首要选择教材!
——卞安(网名:红孩儿,国内游戏开发技术专家)
本书详尽地讲述了Cocos2d引擎的起源与发展,不仅让初学者深入了解到该引擎的来龙去脉,更对Cocos2d众多版本的选择上给予了重要的剖析与建议。 作者还通过由浅入深的教学方式来讲解项目实战开发的过程,介绍了许多实战经验,避免初学者在学习过程中走弯路。全书重点讲解Cocos2dx-Lua,其跨平台性和热更新机制已是当今游戏开发中的刚性需求!因此我极力建议学习Cocos2d引擎的读者把此书列为必读入门经典!
—— 李华明(网名:Himi,国内游戏开发技术专家,网易《功夫熊猫》游戏团队CTO)
本书市面上第一本由 Cocos 官方编写的 Cocos2d-x Lua 实战书籍。本书内容由浅及深,从 Cocos2d-x Lua 的基本概念、Lua 编程基础,到完整的游戏设计和实现都有详细论述。 除了基础知识和游戏开发实践,本书还包含了 Cocos2d-x Lua 在内存管理、性能优化、网络访问、UI 库等进阶内容。 由于本书由触控科技精通 Cocos2d-x Lua 的资深开发人员亲自编写,完全遵循 Cocos2d-x Lua 的较佳实践方法。所以不管是即将进入手游行业的 Cocos2d-x Lua 的初学者,还是经验丰富的开发者,本书都是极好的学习资料和参考手册。
—— 廖宇雷(Cocos2d-lua引擎作者)
近几年有幸目睹了Cocos2d-x逐渐发展壮大,并成为了中国开源项目的骄傲。C++虽然是游戏开发的主流技术,但对于初学游戏开发的人来说过于复杂且不易上手。Lua是国内脚本开发技术的主流,自Cocos2d-x提供Lua-binding脚本技术以来,有效地降低了学习难度,极大地提高了开发效率,对Cocos2d-x技术的推广普及起到了不可估量的作用。杨雍团队多年以来一直从事Cocos2d-x的研究和推广工作,经验极为丰富。随着这本书的交付出版,Cocos2d-x技术和Cocos2d-x社区必将有一个更加光明的未来……
——岳阳(网名:老G,资深Cocos技术爱好者)
一年前,泰然网教主杨雍跟我说要出一本较好的 Cocos2d-x 入门图书。今天,他真做到了。本书是泰然网的诚意之作,它以 Cocos2d-Lua 为背景,从 Lua 语言基础到 Cocos2d-x 核心知识点,由浅入深,全面论述。 最后本书以一个完整的游戏实例收尾,帮助读者快速动手实践。
——屈光辉 (泰然网ID:子龙山人,国内游戏开发技术专家,现任职于Cocos引擎团队)