Cocos2d-x实战:JS卷——Cocos2d-JS开发_游戏开发教程
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发
内容简介:
本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台发布、程序代码管理、两大应用商店发布产品。全书分为6:基础篇、进阶篇、数据与网络篇、设计与优化篇、多平台发布篇和实战篇。基础篇包括第2章~第8章,Cocos2d-JS介绍、环境搭建、标签、菜单、精灵、场景、层、动作、特效、动画和Cocos2d-JS用户事件。进阶篇包括第9章~第12章,游戏音乐与音效、粒子系统、瓦片地图和物理引擎。数据与网络篇包括第13章~第15章,Cocos2d-JS中的数据持久化、基于HTTP网络通信和基于Node.js的Socket.IO网络通信。优化篇包括第16章性能优化。多平台发布篇包括第17章~第19章,发布到Web平台、发布到本地iOS平台和发布到本地Android平台。实战篇包括第20章~第24章,使用Git管理程序代码、项目实战:迷失航线手机游戏、为迷失航线游戏添加广告、发布放到Google play应用商店和发布放到苹果App Store。
资源目录:
第1章 准备开始
1.1本书学习路线图
1.2使用实例代码
第一篇 基础篇
第2章 Javascript语言基础
2.1环境搭建
2.1.1Javascript编辑工具
2.1.2Javascript运行测试环境
2.1.3HelloJS实例测试
2.2标识符和保留字
2.2.1标识符
2.2.2保留字
2.3常量和变量
2.3.1常量
2.3.2变量
2.3.3命名规范
2.4注释
2.5Javascript数据类型
2.5.1数据类型
2.5.2数据类型字面量
2.5.3数据类型转换
2.6运算符
2.6.1算术运算符
2.6.2关系运算符
2.6.3逻辑运算符
2.6.4位运算符
2.6.5其他运算符
2.7控制语句
2.7.1分支语句
2.7.2循环语句
2.7.3跳转语句
2.8数组
2.9函数
2.9.1使用函数
2.9.2变量作用域
2.9.3嵌套函数
2.9.4返回函数
2.10Javascript中的面向对象
2.10.1创建对象
2.10.2常用内置对象
2.10.3原型
2.11Cocos2dJS中的Javascript继承
本章 小结
第3章 Hello Cocos2dJS
3.1移动平台游戏引擎
3.2Cocos2d游戏引擎
3.2.1Cocos2d游戏引擎家谱
3.2.2Cocos2dx引擎
3.2.3Cocos2dJS引擎
3.3搭建Cocos2dJS开发环境
3.3.1搭建WebStorm开发环境
3.3.2搭建Cocos Code IDE开发环境
3.3.3下载和使用Cocos2dJS官方案例
3.3.4使用API文档
3.4第一个Cocos2dJS游戏
3.4.1创建工程
3.4.2在Cocos Code IDE中运行
3.4.3在WebStorm中运行
3.4.4工程文件结构
3.4.5代码解释
3.5Cocos2dJS核心概念
3.5.1导演
3.5.2场景
3.5.3层
3.5.4精灵
3.5.5菜单
3.6Node与Node层级架构
3.6.1Node中重要的操作
3.6.2Node中重要的属性
3.6.3游戏循环与调度
3.7Cocos2dJS坐标系
3.7.1UI坐标
3.7.2OpenGL坐标
3.7.3世界坐标和模型坐标
本章 小结
第4章 标签和菜单
4.1使用标签
4.1.1cc.LabelTTF
4.1.2cc.LabelAtlas
4.1.3cc.LabelBMFont
4.2使用菜单
4.2.1文本菜单
4.2.2精灵菜单和图片菜单
4.2.3开关菜单
本章 小结
第5章 精灵
5.1Sprite精灵类
5.1.1创建Sprite精灵对象
5.1.2实例: 使用纹理对象创建Sprite对象
5.2精灵的性能优化
5.2.1使用纹理图集
5.2.2使用精灵帧缓存
本章 小结
第6章 场景与层
6.1场景与层的关系
6.2场景切换
6.2.1场景切换相关函数
6.2.2场景过渡动画
6.3场景的生命周期
6.3.1生命周期函数
6.3.2多场景切换生命周期
本章 小结
第7章 动作、特效和动画
7.1动作
7.1.1瞬时动作
7.1.2间隔动作
7.1.3组合动作
7.1.4动作速度控制
7.1.5回调函数
7.2特效
7.2.1网格动作
7.2.2实例: 特效演示
7.3动画
7.3.1帧动画
7.3.2实例: 帧动画使用
本章 小结
第8章 Cocos2dJS用户事件
8.1事件处理机制
8.1.1事件处理机制中的三个角色
8.1.2事件管理器
8.2触摸事件
8.2.1触摸事件的时间方面
8.2.2触摸事件的空间方面
8.2.3实例: 单点触摸事件
8.2.4实例: 多点触摸事件
8.3键盘事件
8.4鼠标事件
8.5加速度计与加速度事件
8.5.1加速度计
8.5.2实例: 运动的小球
本章 小结
第二篇 进阶篇
第9章 游戏背景音乐与音效
9.1Cocos2dJS中音频文件
9.1.1音频文件
9.1.2Cocos2dJS跨平台音频支持
9.2使用AudioEngine引擎
9.2.1音频文件的预处理
9.2.2播放背景音乐
9.2.3停止播放背景音乐
9.3实例: 设置背景音乐与音效
9.3.1资源文件编写
9.3.2HelloWorld场景实现
9.3.3设置场景实现
本章 小结
第10章 粒子系统
10.1问题的提出
10.2粒子系统基本概念
10.2.1实例: 打火机
10.2.2粒子发射模式
10.2.3粒子系统属性
10.3Cocos2dJS内置粒子系统
10.3.1内置粒子系统
10.3.2实例: 内置粒子系统
10.4自定义粒子系统
本章 小结
第11章 瓦片地图
11.1地图性能问题
11.2Cocos2dJS中瓦片地图API
11.3实例: 忍者无敌
11.3.1设计地图
11.3.2程序中加载地图
11.3.3移动精灵
11.3.4检测碰撞
11.3.5滚动地图
本章 小结
第12章 物理引擎
12.1使用物理引擎
12.2Chipmunk引擎
12.2.1Chipmunk核心概念
12.2.2使用Chipmunk物理引擎的一般步骤
12.2.3实例: HelloChipmunk
12.2.4实例: 碰撞检测
12.2.5实例: 使用关节
12.3Box2D引擎
12.3.1Box2D核心概念
12.3.2使用Box2D物理引擎的一般步骤
12.3.3实例: HelloBox2D
12.3.4实例: 碰撞检测
12.3.5实例: 使用关节
本章 小结
第三篇 数据与网络篇
第13章 数据持久化
13.1Cocos2dJS中的数据持久化
13.2localStorage数据持久化
13.2.1cc.sys.localStorage API函数
13.2.2实例: MyNotes
本章 小结
第14章 基于HTTP网络通信
14.1网络结构
14.1.1客户端服务器结构网络
14.1.2点对点结构网络
14.2HTTP与HTTPS
14.3使用XMLHttpRequest对象开发客户端
14.3.1使用XMLHttpRequest对象
14.3.2实例: 重构MyNotes
14.4数据交换格式
14.5JSON数据交换格式
14.5.1文档结构
14.5.2JSON解码与编码
14.5.3实例: 完善MyNotes
本章 小结
第15章 基于Node.js的Socket.IO网络通信
15.1Node.js
15.1.1Node.js安装
15.1.2Node.js测试
15.2使用Socket.IO
15.2.1Socket.IO服务器端开发
15.2.2Cocos2dJS的Socket.IO客户端开发
15.3实例: Socket.IO重构MyNotes
15.3.1Socket.IO服务器端开发
15.3.2Node.js访问SQLite数据库
15.3.3Cocos2dJS的Socket.IO客户端开发
本章 小结
第四篇 优化篇
第16章 性能优化
16.1缓存创建和清除
16.1.1场景与资源
16.1.2缓存创建和清除时机
16.2图片与纹理优化
16.2.1选择图片格式
16.2.2拼图
16.2.3纹理像素格式
16.2.4背景图片优化
16.2.5纹理缓存异步加载
16.3JSB内存管理
16.4使用Bake层
16.5使用对象池
16.5.1对象池API
16.5.2实例: 发射子弹
本章 小结
第五篇 多平台移植篇
第17章 移植到Web平台
17.1Web服务器与移植
17.1.1Apache HTTP Server安装
17.1.2移植到Web服务器
17.2问题汇总
17.2.1JS文件的压缩与代码混淆
17.2.2判断平台
17.2.3资源不能加载问题
本章 小结
第18章 移植到本地iOS平台
18.1iOS开发环境搭建
18.1.1Xcode安装和卸载
18.1.2Xcode操作界面
18.2创建本地工程
18.3编译与移植
18.4移植问题汇总
18.4.1iOS平台声音移植问题
18.4.2使用PVR纹理格式
18.4.3横屏与竖屏设置问题
18.5多分辨率屏幕适配
18.5.1问题的提出
18.5.2分辨率策略
本章 小结
第19章 移植到本地Android平台
19.1搭建交叉编译和打包环境
19.1.1安装Android SDK
19.1.2管理Android SDK
19.1.3管理Android开发模拟器
19.1.4安装Android NDK
19.2交叉编译
19.3打包运行
19.4移植问题汇总
19.4.1JS文件编译问题
19.4.2横屏与竖屏设置问题
本章 小结
第六篇 实战篇
第20章 使用Git管理程序代码版本
20.1代码版本管理工具——Git
20.1.1版本控制历史
20.1.2术语和基本概念
20.1.3Git环境配置
20.1.4Git常用命令
20.2代码托管服务——GitHub
20.2.1创建和配置GitHub账号
20.2.2创建代码库
20.2.3删除代码库
20.2.4派生代码库
20.2.5GitHub协同开发
20.3实例: Cocos2dJS游戏项目协同开发
20.3.1提交到GitHub代码库
20.3.2克隆GitHub代码库
20.3.3重新获得GitHub代码库
本章 小结
第21章 Cocos2dJS敏捷开发项目实战——迷失航线手机游戏
21.1迷失航线游戏分析与设计
21.1.1迷失航线故事背景
21.1.2需求分析
21.1.3原型设计
21.1.4游戏脚本
21.2任务1: 游戏工程的创建与初始化
21.2.1迭代1.1: 创建工程
21.2.2迭代1.2: 添加资源文件
21.2.3迭代1.3: 添加常量文件SystemConst.js
21.2.4迭代1.4: 多分辨率适配
21.2.5迭代1.5: 发布到GitHub
21.3任务2: 创建Loading场景
21.3.1迭代2.1: 修改启动界面
21.3.2迭代2.2: 配置文件resource.js
21.4任务3: 创建Home场景
21.4.1迭代3.1: 添加场景和层
21.4.2迭代3.2: 添加菜单
21.5任务4: 创建设置场景
21.6任务5: 创建帮助场景
21.7任务6: 游戏场景实现
21.7.1迭代6.1: 创建敌人精灵
21.7.2迭代6.2: 创建玩家飞机精灵
21.7.3迭代6.3: 创建炮弹精灵
21.7.4迭代6.4: 初始化游戏场景
21.7.5迭代6.5: 游戏场景菜单实现
21.7.6迭代6.6: 玩家飞机发射炮弹
21.7.7迭代6.7: 炮弹与敌人的碰撞检测
21.7.8迭代6.8: 玩家飞机与敌人的碰撞检测
21.7.9迭代6.9: 玩家飞机生命值显示
21.7.10迭代6.10: 显示玩家得分情况
21.8任务7: 游戏结束场景
本章 小结
第22章 为迷失航线游戏添加广告
22.1使用谷歌AdMob广告
22.1.1注册AdMob账号
22.1.2管理AdMob广告
22.1.3AdMob广告类型
22.1.4下载谷歌AdMob Ads SDK
22.2为迷失航线游戏Android平台添加AdMob广告
22.2.1Google play服务下载与配置
22.2.2导入libcocos2dx类库工程到Eclipse
22.2.3导入LostRoutes工程到Eclipse
22.2.4编写AdMob相关代码
22.2.5交叉编译、打包和运行
22.3为迷失航线游戏iOS平台添加AdMob广告
22.3.1Cocos2dx引擎iOS平台下搭建AdMob开发环境
22.3.2编写AdMob相关代码
本章 小结
第23章 把迷失航线游戏发布到Google play 应用商店
23.1谷歌Android应用商店Google play
23.2还有“最后一千米”
23.2.1JS文件编译
23.2.2添加图标
23.2.3应用程序打包
23.3发布产品
23.3.1上传APK
23.3.2填写商品详细信息
23.3.3定价和发布范围
本章 小结
第24章 把迷失航线游戏发布到苹果App Store应用商店
24.1苹果的App Store
24.2iOS设备测试
24.2.1创建开发者证书
24.2.2设备注册
24.2.3创建App ID
24.2.4创建配置概要文件
24.2.5设备上运行
24.3还有“最后一千米”
24.3.1添加图标
24.3.2添加启动界面
24.3.3修改发布产品属性
24.3.4为发布进行编译
24.3.5应用打包
24.4发布产品
24.4.1创建应用及基本信息
24.4.2应用定价信息
24.4.3基本信息输入
24.4.4上传应用前准备
24.4.5上传应用
24.5常见审核不通过的原因
本章 小结
资源截图: