首页>参考读物>计算机科学与技术>软件与程序设计

实例妙解Cocos2D-X游戏开发
作者 : 樊松阳 著
出版日期 : 2014-09-25
ISBN : 978-7-111-47853-9
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 274
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

这是一本完全通过游戏案例来驱动的实战性著作,作者是一线资深的游戏开发工程师和移动开发工程师,本书根据Cocos2D-X的最新版本撰写,得到了Cocos2D-X创始人王哲和CSDN创始人蒋涛两位业界专家的高度认可,权威性毋庸置疑。它将Cocos2D-X的各种功能、原理、技巧巧妙地融入游戏案例中,既增强了实战性,又降低了学习的难度;同时它还进行了人物和场景的设计,增强了学习的趣味性。此外,这些案例还从另外一个维度详细讲解了空战类、塔防类、物理类游戏的开发过程和方法。

全书12章,分为三个部分:准备篇(1~3章),首先介绍了Cocos2D-X的开发环境搭建和基本开发方法,然后通过一个名为“钢琴师”的游戏介绍了完整的Cocos2D-X游戏开发流程。故事情节上,本书从屌丝程序员劲松的基友在学校的美术展上偶遇一位美女老师开始,他想通过为他的女生开发一款游戏来赢得她的芳心,随后一系列有趣的故事由此而发生。实战篇(4~8章),首先是通过飞行空战游戏,重点讲解了帧动画、事件分发机制、Schedule使用以及对话框的制作;接着通过打砖块游戏,详细介绍了Physicls物理引擎的使用;最后通过塔防游戏,介绍了瓦片地图以及CocoStudio整合场景的使用方法。讲解代码的同时,渗透了C++11的使用,带领读者熟悉新的编码风格。拓展篇(9~12章),首先是对Cocos2d-x 3.x中重要的特性进行了总结和展开阐述,然后讲解了Android平台SDK的接入、App Store支付、微信社交分享的接入等扩展知识。

图书特色

这是一本完全通过游戏案例来驱动的实战性著作,作者是一线资深的游戏开发工程师和移动开发工程师。本书根据Cocos2D-X的最新版本3.x撰写,得到了Cocos2D-X创始人王哲和CSDN创始人蒋涛两位业界专家的高度认可,权威性毋庸置疑。它将Cocos2D-X的各种功能、原理、技巧巧妙地融入游戏案例中,既增强了实战性,又降低了学习的难度;同时它还进行了人物和场景的设计,增强了学习的趣味性。此外,这些案例还从另外一个维度详细讲解了空战类、塔防类、物理类游戏的开发过程和方法。
全书12章,分为三个部分:准备篇(第1~3章),首先介绍了Cocos2D-X的开发环境搭建和基本开发方法,然后通过一个名为“钢琴师”的游戏介绍了完整的Cocos2D-X游戏开发流程。故事情节上,本书从“屌丝”程序员劲松的同事在学校的美术展上偶遇一位美女老师开始,他想通过为他的女神开发一款游戏来赢得她的芳心,随后一系列有趣的故事由此发生。实战篇(第4~8章),首先通过飞机空战游戏,重点讲解了帧动画、事件分发机制、Schedule使用以及对话框的制作;接着通过打砖块游戏,详细介绍了Physicls物理引擎的使用;最后通过塔防游戏,介绍了瓦片地图以及CocoStudio整合场景的使用方法。在讲解代码的同时,渗透了C++11的使用,带领读者熟悉新的编码风格。拓展篇(第9~12章),首先是对Cocos2D-X 3.x中重要的特性进行了总结和展开阐述,然后讲解了Android平台SDK的接入、App Store支付、微信社交分享的接入等扩展知识。
与市面上已有的Cocos2D-X图书相比,本书主要有三大特色:第一,本书是国内最早的基于3.x版本的著作,因为3.0的变化是革命性的,所以之前的基于2.x版本来写的书几乎全部被淘汰了;第二,本书强调实例,完全摒弃了常规的“先理论后案例”结构,采用了完全用案例驱动的模式,所有知识点都通过实例引出并做分析,降低了学习的难度;第三,本书注重“妙解”,设计了人物和故事场景,使得整个内容故事性更强,增加了学习的趣味性。

对于Cocos2D-X的学习者来说,学习的素材已经不再是问题,因为图书、视频等各种素材日益丰富,现在困扰他们的是如何才能快速又轻松地掌握Cocos2D-X。为了解决这个问题,本书颇下了一番功夫:首先, 这是一本优秀的初级/中级Cocos2D-X入门书籍,知识点系统而全面。本书以劲松、文彪等“几枚”程序员开发把妹应用的故事为开篇,用一种有趣的方式开启Cocos2D-X之旅,颇有创意;而后内容由浅入深,通过飞机空战、打砖块、塔防几个经典游戏,详细讲解引擎功能;最后,松阳还贴心地补充了Android平台SDK接入、AppStore接入,以及社交分享接入等配套干货,是值得入手的一本书。
——王哲 Cocos2D-X创始人
这本书是樊松阳在CSDN博客上日积月累后的成果转化。良好的笔记习惯,一方面有助于自身的学习记录,一方面能增加同其他人的沟通交流,这种沟通交流也促进了自身的学习动力和效率。作者对Cocos2D-X的理解基于其对Android和iOS的实战经验和深刻理解,本书理论结合实战,语言风趣幽默,通过游戏化的方式让大家快速掌握Cocos2D-X。
——蒋涛 CSDN创始人
樊松阳 资深游戏开发工程师和移动应用开发工程师,曾就职于北京联众,在移动游戏开发方面积累了丰富的经验。精通Cocos2D-X和Unity3D游戏开发,有大量项目实战经验,并且擅长Cocos2D-X框架的改进与封装。此外,他还精通C++、Java和.NET相关技术,能熟练使用Lua、Python等脚本语言开发游戏程序,近期关注Swift。活跃于各大技术社区,CSDN博客专家,撰写的Cocos2D-X游戏开发系列文章非常受欢迎。
CSDN博客地址:http://blog.csdn.net/fansongy。

图书前言

为什么要写这本书
  “想要我的财宝吗?想要的话可以给你!去找吧,我把所有的财宝都放在那里了。”每次看到罗杰的这段话,我总是觉得海贼王说的就是移动互联网的故事。世界被移动设备充斥,就像海贼王中无处不在的大海,乔布斯的死开启了大航海时代。
  说到移动开发,我最早接触是在刚上大学时,那时跟着老师做一个跨平台程序移植项目,将开源程序从Linux平台移植到maemo平台,现在回头看是很简单的。我们从ubuntu开始学习,到最后将程序运行到一块板子上,中间经历和学到了许多的东西。
  完成这个项目后,刚好赶上Android的出现。当时Android的资料只有官方文档,我就抱着学学看的态度去研究,却发现并没有想象的那么困难。“为之则难者亦易已,不为则易者亦难已”,这就是我最大的感触。后来我参加了Google举办的大学生编程大赛,代表学校取得了些不值一提的名次。
  在这段时期,我意识到了文档的重要性,就开始在CSDN上写博客。我想得简单,自己费尽心血已经解决的问题,就不要让别人受同样的折磨。没想到博客越写越多,如今已经成了CSDN的博客专家(blog.csdn.net/fansongy),也算是意外收获。
  后来发现移动游戏的开发不仅限于Android平台,iOS平台也非常的重要,就学习了Objective-C编程。但同一款游戏,写两套代码维护起来很麻烦。最后接触到了Cocos2D-X,它最大的优势就是Android平台和iOS平台共用一套C++代码,可以根据不同的目标平台编译成对应的应用,这确实极大地方便了开发者。另一方面,Cocos2D-X是开源引擎。当我们遇到问题时,可以跟踪代码来了解问题产生的原因。同时,研究引擎本身也是积累编程经验的好方法。
  由于博客中都是一些零散的知识,我试图将Cocos2D-X的技巧串起来,写出更系统的文章。正巧机械工业出版社华章分社的杨福川老师找到我,一拍即合,就有了这本书。
读者对象
  Cocos2D-X的初级及中级开发者。
  没使用过Cocos2D-X,但有iOS或Android开发经验的开发者。
  没有手游开发经验,但之前有C/C++或Java等语言开发经验的开发者。
  游戏开发爱好者。
  开设相关课程的大专院校师生。
如何阅读本书
  本书的内容分为三个部分。
  第一部分:快速上手(第1~3章)。主要介绍Cocos2D-X 3.x中开发的基本方法,以及一些新加入的特性。通过阅读,能够学会安装配置Cocos2D-X开发环境,并能将开发出的程序运行到手机上。同时掌握简单的游戏开发流程,能够开发一款简单的钢琴游戏。
  第二部分:开发实战(第4~8章)。通过手把手的方式,由浅入深地讲解手机游戏的开发。首先通过飞机空战游戏,重点讲解了帧动画、事件分发机制、Schedule的使用以及对话框的制作。接着通过打砖块游戏,详细介绍了物理引擎Physicls的使用。最后通过塔防游戏,介绍了瓦片地图以及CocoStudio整合场景的使用方法。在讲解代码的同时,渗透了C++11的使用,带领读者熟悉新的编码风格。
  第三部分:拓展知识(第9~12章)。这部分包括对Cocos2D-X 3.x中常见知识的总结,以及常见的业务型需求与Cocos2D-X游戏开发的结合,例如,Android平台SDK的接入、App Store支付、社交分享的接入等。
  前两部分建议按顺序阅读,当然如果你是一名经验丰富的资深用户,能够理解Cocos2D-X的相关基础知识和使用技巧,也可以跳过一些熟悉的章节。第三部分较前两部分相对独立,涉及了Android、iOS开发的相关知识。如果有特殊的需求,可以直接阅读相关章节。
勘误和支持
  由于作者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为了方便大家交流,我专门创建了QQ群(305889963)。大家有问题可以在群里探讨,我也会尽量为大家解答。书中的全部源文件可以在随书光盘中找到,书中的代码会在Github上(https://github.com/fansongy/Example-of-Cocos2D-X)动态更新。也欢迎大家关注我的个人主页(www.songyang.net),我会将相应的功能更新及时发布出来。如果你有更多宝贵意见,也欢迎发送邮件至fansongy@gmail.com,期待能够得到你们的真挚反馈。
致谢
  首先要感谢Cocos2D-X的开发团队,感谢他们为游戏开发者带来如此优秀的引擎。
  感谢我的老东家联众互动网络股份有限公司。感谢公司对我的锻炼和培养,使我在很短的时间内从初出校门的学生,成长为独当一面的能手。
  感谢我的母校哈尔滨理工大学。它为我提供了一个自由充实的学习环境,各个校区的图书馆中有看不完的书籍和杂志。
  感谢CSDN网站上每一位阅读我文章的网友,他们的支持,是我写下去的动力。
  感谢胡争辉老师。在构思本书的过程中,他为我提供了大量的建议。他无私地分享了之前的成功经验,并以此作为指导,一起完成了本书章节的编排。
  感谢李添甜(新浪微博LTTSweetness: http://weibo.com/u/2028373575)。作为本书唯一的美术人员,工作之余她花费了大量的时间来制作书中用到的美术资源,可以说没有她,我很难顺利完成这本书的编写。
  感谢机械工业出版社华章分社的杨福川老师和姜影老师,在这一年左右的时间中始终支持我的写作,鼓励和引导我顺利完成全部书稿。
  最后感谢我的爸爸、妈妈、爷爷、奶奶,感谢他们将我培养成人,并教会我做人的道理。
  谨以此书献给我最亲爱的家人,以及众多热爱Cocos2D-X的朋友们!

樊松阳 
于北京

上架指导

计算机\游戏开发

封底文字

与市面上已有的Cocos2D-X的图书相比,本书主要有三大特色:第一,本书是国内最早的基于3.x版本著作,因为3.0的变化是革命性的,所以之前的基于2.x版本来写的书几乎全部被淘汰了;第二,本书强调实例,完全摒弃了常规的“先理论后案例”结构,采用了完全用案例驱动的模式,所有知识点都通过实例引出并做分析,降低了学习的难度;第三,本书注重“妙解”,设计了人物和故事场景,使得整个学习过程更加故事性,增加了学习的趣味性。

对于Cocos2D-X的学习者来说,学习的素材已经不再是问题,因为图书、视频等各种素材日益丰富,现在困扰他们的是如何才能快速又轻松地掌握Cocos2D-X。为了解决这个问题,本书颇下了一番功夫:首先,
这是一本优秀的初级/中级Cocos 2D-X入门书籍,知识点系统而全面。本书以劲松、文彪等几枚程序员开发把妹应用的故事为开篇,用一种有趣的方式开启Cocos2D-x之旅,颇有创意;而后内容由浅入深,通过飞行空战、打砖块、塔防几个经典游戏,详细讲解引擎功能;最后,松阳还贴心地补充了Android平台SDK接入、AppStore接入、以及社交分享接入等配套干货,是值得入手的一本书。
——王哲 Cocos2D-X创始人
这本书是樊松阳在CSDN博客上日积月累后的成果转化。良好的笔记习惯,一方面有助于自身的学习记录,一方面能增加同其他人的沟通交流,这种沟通交流也促进了自身的学习动力和效率。作者对Cocos2D-X的理解基于其对Android和iOS的实战经验和深刻理解,本书理论结合实战,语言风趣幽默,通过游戏化的方式让大家快速掌握Cocos2D-X。
——蒋涛 CSDN创始人

作者简介

樊松阳 著:暂无简介

图书目录

前 言
第一部分 快速上手
第1章 搭建Cocos2D-X开发环境 2
1.1 引擎简介 3
1.1.1 选择Cocos2D-X的理由 3
1.1.2 Cocos2D-X 3.x版本与先前版本的不同 3
1.2 搭建开发环境 4
1.2.1 安装开发环境 4
1.2.2 安装CocoStudio 5
1.3 创建项目 6
1.3.1 安装Python 7
1.3.2 创建新项目 7
1.3.3 目录结构 9
1.4 小结 10
第2章 钢琴师(上) 11
2.1 解析Cocos2D-X 12
2.1.1 元素 12
2.1.2 层 14
2.1.3 场景 14
2.1.4 导演 15
2.1.5 组合 15
2.2 使用UI编辑器 15
2.2.1 创建UI工程 16
2.2.2 创建元素 17
2.2.3 导出 20
2.3 载入到程序 20
2.3.1 创建加载环境 21
2.3.2 加载导出文件 23
2.4 完善功能 24
2.4.1 点击响应 25
2.4.2 补齐整套琴键 27
2.5 安装到手机中 29
2.5.1 安装Java环境 30
2.5.2 配置Cocos2D-X编译环境 31
2.5.3 编译项目 32
2.6 小结 33
第3章 钢琴师(下) 34
3.1 粒子效果 35
3.1.1 粒子效果原理 35
3.1.2 粒子编辑器 36
3.1.3 加载到程序中 38
3.2 动作 38
3.2.1 重要示例 39
3.2.2 学习方式 39
3.2.3 实际使用 41
3.3 文字 42
3.3.1 编辑自定义字体 42
3.3.2 在CocoStudio中使用字体 44
3.4 输入信息 45
3.4.1 编辑输入区域 45
3.4.2 添加输入设置 46
3.4.3 信息存储 47
3.5 小结 48
第二部分 开发实战
第4章 飞机空战(上) 50
4.1 飞机起飞 51
4.1.1 动画编辑器 52
4.1.2 载入到程序中 53
4.1.3 制作敌人飞机 55
4.1.4 调整模拟器 56
4.2 飞机移动 57
4.2.1 点击调度结构 57
4.2.2 主角的移动 58
4.2.3 敌人飞机的移动 59
4.3 发射子弹 62
4.3.1 发出子弹 63
4.3.2 创建多个敌人 66
4.3.3 滚动背景 67
4.4 添加物理系统 68
4.4.1 更改World配置 69
4.4.2 添加Body 70
4.4.3 碰撞处理 74
4.5 重新开始游戏 75
4.5.1 制作对话框 75
4.5.2 载入对话框 77
4.5.3 重构开始游戏 78
4.6 小结 82
第5章 飞机空战(下) 83
5.1 欢迎界面 84
5.1.1 编辑UI 85
5.1.2 流程控制 85
5.2 游戏计分 88
5.2.1 制作界面 88
5.2.2 关联程序变量 90
5.2.3 添加血量 90
5.2.4 添加得分 93
5.3 结果界面 93
5.3.1 编辑界面 94
5.3.2 加载显示 95
5.3.3 存储记录 98
5.4 最高分界面 99
5.4.1 编辑界面 100
5.4.2 加载实现 100
5.5 小结 102
第6章 打砖块 103
6.1 搭建物理世界 104
6.1.1 设置世界特性 104
6.1.2 回弹的小球 106
6.1.3 创建挡板 107
6.1.4 移动挡板 108
6.2 设计关卡 109
6.2.1 使用场景编辑器 109
6.2.2 加载场景 112
6.2.3 适配场景 113
6.3 碰撞处理 114
6.3.1 定义Body类型 115
6.3.2 绑定编辑模型 116
6.3.3 碰撞响应 117
6.4 多个关卡 118
6.4.1 编辑欢迎界面 119
6.4.2 创建新关卡 120
6.4.3 载入程序 120
6.4.4 关卡预览 122
6.5 完善流程 125
6.5.1 编辑结果框 125
6.5.2 添加获胜逻辑 127
6.5.3 添加失败处理 128
6.5.4 梳理流程 129
6.6 小结 132
第7章 塔防(上) 133
7.1 瓦片地图 134
7.1.1 概念介绍 134
7.1.2 编辑器 136
7.1.3 创建工程 137
7.1.4 编辑场景 138
7.1.5 加载到程序 139
7.2 标记路径 142
7.2.1 创建对象层 142
7.2.2 加载移动 143
7.2.3 移动怪物 144
7.3 面向组件编程 145
7.3.1 Cocos2D-X对组件的支持 145
7.3.2 制作组件 146
7.3.3 初始化数据 148
7.3.4 调用移动 149
7.3.5 挂载到节点 149
7.4 防御塔 151
7.4.1 制作标记层 151
7.4.2 创建点击 153
7.4.3 读取属性 153
7.4.4 创建塔 155
7.5 制作碰撞组件 156
7.5.1 整体设计 157
7.5.2 编辑炮弹组件 157
7.5.3 防御塔组件 160
7.5.4 血量组件 162
7.6 碰撞模块 165
7.6.1 编写模块 165
7.6.2 调用模块 168
7.7 小结 171
第8章 塔防(下) 172
8.1 细化怪物 173
8.1.1 骨骼动画 173
8.1.2 编辑动画 174
8.1.3 载入程序 176
8.2 分数控制 177
8.2.1 制作HUD 178
8.2.2 波数显示 179
8.2.3 金币数 180
8.2.4 血量 182
8.3 流程控制 184
8.3.1 场景与层 185
8.3.2 欢迎场景 186
8.3.3 多关卡 190
8.4 结果菜单 190
8.4.1 制作九宫格菜单 191
8.4.2 挂载程序 191
8.5 小结 196
第三部分 拓展知识
第9章 Cocos2D-X特性总结 198
9.1 基本类与宏 198
9.1.1 Node继承体系 198
9.1.2 常用宏 199
9.2 C++ 11新特性 201
9.2.1 auto 201
9.2.2 Lambda函数 202
9.2.3 std::function类型 203
9.3 内存管理 206
9.4 Cocos2D-X 3.x 绘制优化 209
9.4.1 自动批次渲染 209
9.4.2 绘制剔除 212
9.5  小结 213
第10章 Android平台的SDK接入 215
10.1 搭建测试环境 216
10.1.1 创建Cocos2D-X项目 216
10.1.2 更改Android项目配置 218
10.2 Android环境配置 222
10.2.1 Eclipse配置项目关联 222
10.2.2 创建主Activity 224
10.3 C++调用SDK功能 225
10.3.1 添加C++调用 225
10.3.2 添加Java实现函数 227
10.4 Java调用C++ 228
10.4.1 定义回调接口 228
10.4.2 实现处理逻辑 230
10.5 小结 232
第11章 App Store支付接入 233
11.1 新建应用 233
11.2 生成授权 236
11.2.1 授权设备 237
11.2.2 生成授权文件 238
11.2.3 运行项目 240
11.3 创建商品 242
11.4 接入程序 246
11.5 测试支付 252
11.5.1 创建测试账号 252
11.5.2 真机测试 254
11.6 小结 254
第12章 微信社交分享 255
12.1 开发环境搭建 255
12.1.1 创建工程 255
12.1.2 引入包 257
12.1.3 创建主Activity 257
12.2 发送信息到微信 259
12.2.1 C++部分调用 259
12.2.2 Java部分调用 260
12.2.3 申请包签名 261
12.3 小结 261

教学资源推荐
作者: 覃华 韦兆文 陈琴
作者: 郭志强 邱李华 曹青 等编著
作者: (美)本贾尼·斯特劳斯特鲁普 (Bjarne Stroustrup)著
参考读物推荐
作者: 水滴技术团队 著
作者: 余洪春 著
作者: 快学习教育 编著