《Cocos2d-x学习笔记》由触控未来CEO李志远主编策划出版,该系列图书由赵志荣、关东升(Cocos CVP)等业内专家根据研发经验及读者学习规律,精心编撰。该系列图书得到了Cocos引擎创始人王哲的鼎力支持,并亲自作序。51CTO学院运营总监曹亚莉、触控爱普众创创始人肖涵泉、火云洞红孩儿卞安,LoopTek公司柯博文CTO通读全书,并写书评推荐。
本书系统论述了Cocos2d x Lua API游戏编程和开发技术,内容涵盖Cocos2dx中的核心类、瓦片地图、物理引擎和AudioEngine音频引擎等知识。全书分为16章: 准备开始、Lua语言基础、Cocos2dx Lua API开发环境搭建、Cocos2dx引擎与Lua绑定、游戏中的文字、菜单、精灵、场景与层、动作和动画、用户事件、AudioEngine音频引擎、粒子系统、瓦片地图、物理引擎、Cocos2dx多分辨率屏幕适配,以及手机游戏项目实战。
本书适合作为普通高校计算机、动漫设计、数字媒体等相关专业的游戏开发课程的教材,也适合作为手机游戏开发培训机构的培训教材及广大手机游戏开发者的自学参考用书。
目录
丛书序Ⅲ
序Ⅴ
前言Ⅶ
第1章准备开始
1.1使用实例代码
1.2图示的约定
1.2.1图中的箭头
1.2.2图中的手势
1.2.3图中的圈框
1.2.4类图
第2章Lua语言基础
2.1Lua开发环境搭建
2.1.1安装LDT工具
2.1.2HelloLua实例测试
2.2标识符和保留字
2.2.1标识符
2.2.2保留字
2.3常量和变量
2.3.1常量
2.3.2变量
2.3.3命名规范
2.4注释
2.5Lua数据类型
2.5.1数据类型
2.5.2type函数
2.5.3数据类型转换
2.6运算符
2.6.1算术运算符
2.6.2关系运算符
2.6.3逻辑运算符
2.6.4运算优先级
2.7控制语句
2.7.1分支语句
2.7.2循环语句
2.7.3跳转语句
2.8table类型
2.8.1字典
2.8.2数组
2.9字符串类型
2.9.1字符串截取
2.9.2字符串转换
2.9.3字符串查询
2.9.4字符串格式化
2.10函数
2.10.1使用函数
2.10.2变量作用域
2.10.3多重返回值
2.11闭包函数
2.11.1嵌套函数
2.11.2返回函数
2.11.3使用闭包表达式
2.12Lua中的面向对象
2.12.1Lua中的对象
2.12.2类的实现
本章小结
第3章Cocos2dx Lua API开发环境搭建
3.1搭建环境
3.1.1Cocos引擎下载安装
3.1.2Cocos Framework下载和安装
3.2Cocos Code IDE开发工具
3.2.1安装Cocos Code IDE
3.2.2配置Cocos Code IDE
3.2.3使用Cocos Code IDE调试功能
本章小结
第4章Cocos2dx引擎与Lua绑定
4.1Cocos2d家谱
4.1.1Cocos2dx引擎
4.1.2Cocos2dx绑定Lua
4.2第一个Cocos2dx Lua绑定游戏
4.2.1创建工程
4.2.2Cocos Code IDE中运行
4.2.3工程文件结构
4.2.4重构HelloLua案例
4.3Cocos2dx核心概念
4.3.1导演
4.3.2场景
4.3.3层
4.4Node与Node层级架构
4.4.1Node中重要的操作
4.4.2Node中重要的属性
4.4.3游戏循环与调度
4.5Cocos2dx坐标系
4.5.1UI坐标
4.5.2OpenGL坐标
4.5.3世界坐标和模型坐标
本章小结
第5章游戏中的文字
5.1使用标签
5.1.1Label类
5.1.2Label类实例
5.2位图字体制作
5.2.1Glyph Designer工具
5.2.2使用Glyph Designer制作位图字体
本章小结
第6章菜单
6.1菜单相关类
6.2文本菜单
6.3精灵菜单和图片菜单
6.4开关菜单
本章小结
第7章精灵
7.1Sprite精灵类
7.1.1创建Sprite精灵对象
7.1.2实例: 使用纹理对象创建Sprite对象
7.2精灵的性能优化
7.2.1使用纹理图集
7.2.2使用精灵帧缓存
7.3纹理图集制作
7.3.1TexturePacker工具
7.3.2使用TexturePacker制作纹理图集
本章小结
第8章场景与层
8.1场景与层的关系
8.2场景切换
8.2.1场景切换相关函数
8.2.2场景过渡动画
8.3场景的生命周期
8.3.1生命周期函数
8.3.2多场景切换生命周期
本章小结
第9章动作和动画
9.1动作
9.1.1瞬时动作
9.1.2间隔动作
9.1.3组合动作
9.1.4动作速度控制
9.1.5函数调用
9.2特效
9.2.1网格动作
9.2.2实例: 特效演示
9.3动画
9.3.1帧动画
9.3.2实例: 帧动画使用
本章小结
第10章用户事件
10.1事件处理机制
10.1.1事件分发器
10.1.2触摸事件
10.1.3实例: 单点触摸事件
10.1.4实例: 多点触摸事件
10.1.5键盘事件
10.2加速度计与加速度计事件
10.2.1加速度计
10.2.2加速度计事件
10.2.3实例: 运动的小球
本章小结
第11章AudioEngine音频引擎
11.1Cocos2dx中音频文件
11.1.1音频文件介绍
11.1.2Cocos2dx跨平台音频支持
11.2使用AudioEngine引擎
11.2.1音频文件的预处理
11.2.2播放背景音乐
11.2.3停止播放背景音乐
11.3实例: 设置背景音乐与音效
11.3.1GameScene场景实现
11.3.2SettingScene场景实现
本章小结
第12章粒子系统
12.1问题的提出
12.2粒子系统基本概念
12.2.1实例: 打火机
12.2.2粒子发射模式
12.2.3粒子系统属性
12.3Cocos2dx内置粒子系统
12.3.1内置粒子系统
12.3.2实例: 内置粒子系统
12.4自定义粒子系统
12.4.1代码创建
12.4.2plist文件创建
本章小结
第13章瓦片地图
13.1地图性能问题
13.2Cocos2dx Lua中瓦片地图API
13.3使用Tiled地图编辑器
13.3.1新建地图
13.3.2导入瓦片集
13.3.3创建层
13.3.4在普通层上绘制地图
13.3.5在对象层上添加对象
13.4实例: 忍者无敌
13.4.1设计地图
13.4.2程序中加载地图
13.4.3移动精灵
13.4.4检测碰撞
13.4.5滚动地图
本章小结
第14章物理引擎
14.1使用物理引擎
14.1.1物理引擎核心概念
14.1.2物理引擎与精灵关系
14.2Cocos2dx中物理引擎
14.2.1Cocos2dx物理引擎Lua API
14.2.2实例: HelloPhysicsWorld
14.2.3实例: 接触与碰撞检测
14.2.4实例: 使用关节
本章小结
第15章多分辨率屏幕适配
15.1屏幕适配问题的提出
15.2Cocos2dx屏幕适配
15.2.1三种分辨率
15.2.2分辨率适配策略
15.2.3纹理图集资源适配
15.2.4瓦片地图资源适配
本章小结
第16章敏捷开发项目实战——迷失航线手机游戏
16.1迷失航线游戏分析与设计
16.1.1迷失航线故事背景
16.1.2需求分析
16.1.3原型设计
16.1.4游戏脚本
16.2任务1: 游戏工程的创建与初始化
16.2.1迭代1.1: 创建工程
16.2.2迭代1.2: 添加资源文件
16.2.3迭代1.3: 添加常量文件SystemConst.lua
16.2.4迭代1.4: 多分辨率支持
16.3任务2: 创建Loading场景
16.3.1迭代2.1: 添加场景和层
16.3.2迭代2.2: Loading动画
16.3.3迭代2.3: 异步加载纹理缓存
16.4任务3: 创建Home场景
16.4.1迭代3.1: 添加场景和层
16.4.2迭代3.2: 添加菜单
16.5任务4: 创建设置场景
16.6任务5: 创建帮助场景
16.7任务6: 游戏场景实现
16.7.1迭代6.1: 创建敌人精灵
16.7.2迭代6.2: 创建玩家飞机精灵
16.7.3迭代6.3: 创建炮弹精灵
16.7.4迭代6.4: 初始化游戏场景
16.7.5迭代6.5: 游戏场景菜单实现
16.7.6迭代6.6: 玩家飞机发射炮弹
16.7.7迭代6.7: 炮弹与敌人的接触检测
16.7.8迭代6.8: 玩家飞机与敌人的接触检测
16.7.9迭代6.9: 玩家飞机生命值显示
16.7.10迭代6.10: 显示玩家得分情况
16.8任务7: 游戏结束场景
本章小结