Cocos2d-x学习笔记:完全掌握C++ API与游戏项目开发
出版时间:2016年版
丛编项: 未来书库
内容简介
本书系统论述了Cocos2dx游戏编程和开发技术,内容涵盖Cocos2dx中核心类、数据结构、瓦片地图、物理引擎、Audio引擎、内存管理等知识。全书分为17章,各章内容为: 本书约定、Cocos2dx环境搭建、Cocos2dx引擎、游戏中的文字、Cocos2dx中的数据结构、菜单、精灵、场景与层、动作和动画、用户事件、Audio引擎、粒子系统、瓦片地图、物理引擎、内存管理、Cocos2dx多分辨率屏幕适配和Cocos2dx敏捷开发项目实战——迷失航线手机游戏。 本书适合作为普通高校计算机、动漫设计、数字媒体等相关专业的游戏开发课程的教材,也适合作为手机游戏开发培训机构的培训教材及广大手机游戏开发者的自学参考用书。
目录
丛书序3
序5
前言7
学习说明9
第1章本书约定
1.1使用实例代码
1.2图示的约定
1.2.1图中的箭头
1.2.2图中的手势
1.2.3图中的圈框
1.3书中的UML图
1.3.1类图
1.3.2时序图
第2章Cocos2dx环境搭建
2.1下载Cocos2dx
2.2搭建环境
2.2.1基本工具安装
2.2.2设置环境变量
2.3开发Cocos2dx游戏的IDE工具
2.3.1使用Visual Studio开发工具
2.3.2使用Xcode开发工具
本章小结
第3章Cocos2dx引擎
3.1Cocos2d家谱
3.2Cocos2dx设计目标
3.3第一个Cocos2dx游戏
3.3.1创建工程
3.3.2Visual Studio工程文件结构
3.3.3Xcode工程文件结构
3.3.4代码解释
3.3.5Win32平台下设置屏幕
3.3.6工程中添加资源文件
3.4Cocos2dx核心概念
3.4.1导演
3.4.2场景
3.4.3层
3.5Node与Node层级架构
3.5.1Node中的重要操作
3.5.2Node中的重要属性
3.5.3游戏循环与调度
3.6Cocos2dx坐标系
3.6.1UI坐标
3.6.2OpenGL坐标
3.6.3世界坐标和模型坐标
本章小结
第4章游戏中的文字
4.1Cocos2dx中的字符串
4.1.1使用const char*和std::string
4.1.2使用cocos2d::String
4.1.3Win32平台下的中文乱码问题
4.2使用标签
4.2.1使用Label类
4.2.2标签中文无法正常显示的问题
4.3位图字体制作
4.3.1Glyph Designer工具
4.3.2使用Glyph Designer制作位图字体
本章小结
第5章Cocos2dx中的数据结构
5.1Cocos2dx中两大类——Ref和Value
5.1.1Cocos2dx根类——Ref
5.1.2包装类Value
5.2Ref列表数据结构
5.2.1Array数据结构
5.2.2实例: Array数据结构
5.2.3Vector数据结构
5.2.4实例: Vector数据结构
5.3Ref字典数据结构
5.3.1Dictionary数据结构
5.3.2实例: Dictionary数据结构
5.3.3Map数据结构
5.3.4实例: Map数据结构
5.4Value列表数据结构——ValueVector
5.4.1ValueVector常用API
5.4.2实例: 使用ValueVector数据结构
5.5Value字典数据结构——ValueMap和ValueMapIntKey
5.5.1ValueMap和ValueMapIntKey常用API
5.5.2实例: 使用ValueMap数据结构
本章小结
第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实例: 使用Lambda表达式
10.1.5键盘事件
10.1.6鼠标事件
10.2在层中进行事件处理
10.2.1触摸事件
10.2.2实例: 单点触摸事件
10.3加速度计与加速度事件
10.3.1加速度计
10.3.2使用事件分发器
10.3.3使用层加速度计事件
10.3.4实例: 运动的小球
本章小结
第11章Audio引擎
11.1Cocos2dx中音频文件
11.1.1音频文件介绍
11.1.2Cocos2dx跨平台音频支持
11.2使用Audio引擎
11.2.1音频文件的预处理
11.2.2播放背景音乐
11.2.3停止播放背景音乐
11.2.4背景音乐播放暂停与继续
11.3实例: 设置背景音乐与音效
11.3.1AppDelegate实现
11.3.2HelloWorld场景实现
11.3.3设置场景实现
本章小结
第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文件创建
12.5粒子系统设计工具Particle Designer
12.5.1粒子设置面板
12.5.2使用分享案例
12.5.3粒子的输出
本章小结
第13章瓦片地图
13.1地图性能问题
13.2Cocos2dx中瓦片地图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 3.x中物理引擎封装
14.2.1Cocos2dx 3.x物理引擎API
14.2.2实例: HelloPhysicsWorld
14.2.3实例: 接触与碰撞检测
14.2.4实例: 使用关节
本章小结
第15章内存管理
15.1C++内存管理
15.1.1内存分配区域
15.1.2动态内存分配
15.2Ref内存管理
15.2.1内存引用计数
15.2.2自动释放池
15.2.3Ref内存管理规则
15.3Ref内存管理设计模式
15.3.1使用静态构造函数
15.3.2使用访问器
15.4其他类型内存管理
15.4.1Value内存管理
15.4.2Vector和Map内存管理
本章小结
第16章Cocos2dx多分辨率屏幕适配
16.1屏幕适配问题的提出
16.2Cocos2dx屏幕适配
16.2.1三种分辨率
16.2.2分辨率策略
16.2.3纹理图集资源适配
16.2.4瓦片地图资源适配
本章小结
第17章Cocos2dx敏捷开发项目实战——迷失航线手机游戏
17.1迷失航线游戏分析与设计
17.1.1迷失航线故事背景
17.1.2需求分析
17.1.3原型设计
17.1.4游戏脚本
17.2任务1: 游戏工程的创建与初始化
17.2.1迭代1.1: 创建工程
17.2.2迭代1.2: 多分辨率支持
17.2.3迭代1.3: 通用类与基类维护
17.3任务2: 创建Loading场景
17.3.1迭代2.1: 添加场景和层
17.3.2迭代2.2: Loading动画
17.3.3迭代2.3: 异步加载纹理缓存
17.3.4迭代2.4: 异步预处理声音
17.4任务3: 创建Home场景
17.4.1迭代3.1: 添加场景和层
17.4.2迭代3.2: 添加菜单
17.5任务4: 创建设置场景
17.6任务5: 创建帮助场景
17.7任务6: 游戏场景实现
17.7.1迭代6.1: 创建敌人精灵
17.7.2迭代6.2: 创建玩家飞机精灵
17.7.3迭代6.3: 创建炮弹精灵
17.7.4迭代6.4: 初始化游戏场景
17.7.5迭代6.5: 游戏场景菜单实现
17.7.6迭代6.6: 玩家飞机发射炮弹
17.7.7迭代6.7: 炮弹与敌人的碰撞检测
17.7.8迭代6.8: 玩家飞机与敌人的碰撞检测
17.7.9迭代6.9: 玩家飞机生命值显示
17.7.10迭代6.10: 显示玩家得分情况
17.8任务7: 游戏结束场景
本章小结