前言
序
近几年,开源力量在全球软件行业里扮演着越来越重要的角色。就移动互联领域而言,Linux内核被广泛用在嵌入式系统和无头设备,Android崛起,PhoneGap诞生,服务端LAMP已是标配,svn/git和Redmine成为很多软件公司的管理工具。时至今日,已经很难有哪家软件公司敢说他们完全不用开源产品了。国内的盛大和淘宝等公司都推出了开源平台,尝试开放企业的一些内部项目的源代码,这些都是非常有意义的举动。就国内开源历史来看,最成功的开源项目当属Discuz、PHPWind和Dvbbs,这3个开源项目服务了国内无数中小网站的站长。而cocos2d-x这一开源项目所追求的目标正是服务大量的手机游戏开发者,把大家都需要花费大量时间学习和需要花费时间重复做的工作抽取出来,形成一套开源的公用库。往大了说就是,希望能通过这套公用库来降低手机游戏开发的技术门槛和研发成本,使得中小团队和个人开发者能从中受益。
cocos2d-x仅是cocos2d社区的一个分支。cocos2d开源项目诞生于2008年第一季度,以阿根廷人Ricardo Quesada为社区领袖和主要开发者。最初这仅是一个用Python语言写的游戏框架,并没有体现出什么商用价值,但2008年正好是苹果发布iPhone 2.0 SDK的时候,这给全球的手机游戏开发者提供了一个非常好的舞台。cocos2d社区抓住了这个时机,在2008年就开出cocos2d-iphone分支,用Objective-C语言替换Python重写了整个框架。cocos2d随着iOS的发展而快速壮大。到了2009年的4月,用cocos2d-iphone写的游戏StickWars在App Store美国区的付费榜冲到第一,这个里程碑事件标志着cocos2d完全脱离了自娱自乐过家家的水平,进入了可以稳定商用的阶段。在2010年,cocos2d已经成为iOS平台上首选的2D游戏框架:几乎每个初学iOS游戏开发的程序员都会从cocos2d入手,社区里时常有开发者跳出来炫耀他的cocos2d游戏冲到App Store Top10,让人“羡慕嫉妒恨”。
cocos2d框架的最大优势在于其简单易学,游戏开发者只需潜心学习一个月左右就能掌握,不需要学习复杂的OpenGL ES知识就可以开发出一款商用水平的游戏,却能完全享受OpenGL ES硬件加速给游戏带来的性能提升和各种炫酷特效。这一核心特点成就了许多个人开发者和中小团队通过cocos2d快速在iOS平台上掘金的梦想。
前文提到,2008年cocos2d社区用Objective-C替换Python对整个游戏框架进行了重写,而在2010年当Android崛起到能够和iPhone抗衡,开发者希望能把游戏移植到Android平台上的时候,同样的事情再次上演:cocos2d-x分支被开出来,框架用C++重写。虽然C++广被诟病,但作为iOS和Android两大平台都官方支持的编程语言,我们不得不“屈服”于C++的实力。事后证明这个技术路线的选择是对的!市面上各种Phone粉墨登场,都有自己独特的SDK、独特的UI控件接口,但对于游戏开发,它们具有两个相同点:一是支持C++开发,二是提供OpenGL ES接口。在这两点上,不论是国内的沃Phone、Ophone、乐Phone和魅族,还是国外的Bada和MeeGo等,都是一致的。甚至连封装层面甚高、直奔HTML5而去的WebOS都专门为游戏开发准备了C++&OpenGL ES专用的PDK。
和cocos2d-iphone的南美洲团队不同,cocos2d-x分支的主要维护团队在中国,我们有幸为大家做了这件事情,并很享受这个利他的过程。在大家的共同努力下,经过第一年的发展,社区里诞生了70多款基于cocos2d-x的游戏,其中包括多款Top 10的佳作,更有《捕鱼达人》、《Ah Up Planet》、《地铁总动员》和《91部落》等明星游戏。截至2011年10月中旬,基于cocos2d-x引擎创作的游戏在iOS平台已累计超过340万次下载,在Android平台则超过1000万次下载。
很快我们就发现大家都开始积极地回馈cocos2d-x项目。网龙公司为社区贡献了整套Lua绑定的代码,SuperRacccon、子龙山人、冬天的林和张文野等多位开发者不断撰写博客阐述使用要点,徐松林和黄猛更是热心地花费几个月的时间,为各位献上的这本教程。它不仅是cocos2d-x社区的第一本中文书,也是整个cocos2d社区的第一本中文书。
cocos2d-x的官方文档都受限于社区的国际化,因此没能提供中文版。另外,很多文档都是站在引擎开发者角度对原理进行阐述和解释的,对于初学者来说可能过于复杂。而此书从游戏开发者的角度,用通俗易懂的方式传授了cocos2d-x引擎的几个主要功能的用法,着重解决官方文档里没有涵盖的部分,如物理引擎和周边工具的使用,解答了新手经常感到困惑的热点问题,如开发环境安装、交叉编译和第三方库集成等。作者在这些地方都非常耐心地给出了按步骤的截图和代码段;最后,两位作者更是给出了一个很有分量的实际游戏案例,使得此书的学习价值大大提高。
非常感谢徐松林和黄猛两位作者的贡献,希望能有更多的游戏开发者从此书中受益。开源社区因为有大家的支持而更美好!
2011年10月
作者简介
徐松林,智能手机平台的先驱者,曾就职于国内知名的企业级平台软件公司,主攻复杂系统的架构设计,在此期间积累了有关大型软件架构设计的丰富经验。2010年5月成立MT工作室,设计并开发用于Android平台的游戏引擎(MT引擎),并基子此弓{擎开发出多款市场反馈较好的游戏。一直专注于研究跨平台的游戏引擎,尤其是跨平台引擎的架构及设计原理。
黄猛,专注于移动平台游戏开发,对Android以及50S系统的编程有深入研究,自Android发布以后,一直关注移动平台的发展,从2008年底开始从事Android底层应用以及2D游戏的研发,有丰富的实战经验。是《魔塔之拯救公主》,《超级DJ》和《魔域之城》尊经典游戏的主力开发者。
目录
第1章 智能手机操作系统介绍
1.1 iOS
1.1.1 iOS常见特性
1.1.2 App Store
1.2 Android
1.2.1 Android常见特性
1.2.2 Android应用商城
1.3 其他手机操作系统
1.3.1 OPhone
1.3.2 沃Phone
1.3.3 LEOS
1.4 总结
第2章 游戏及游戏引擎介绍
2.1 游戏介绍
2.2 游戏引擎介绍
2.2.1 渲染引擎
2.2.2 物理引擎
2.2.3 周边工具
2.3 总结
第3章 进入cocos2d的世界
3.1 cocos2d介绍
3.2 cocos2d-iphone介绍
3.3 cocos2d-x介绍
3.4 cocos2d-x游戏分享
3.5 其他cocos2d版本介绍
3.6 总结
第4章 搭建跨平台的开发环境
4.1 环境说明
4.2 环境搭建
4.2.1 安装Visual Studio
4.2.2 安装Cygwin
4.2.3 安装iOS环境
4.2.4 安装Android环境
4.2.5 安装沃Phone环境
4.2.6 安装cocos2d-x引擎
4.3 环境测试之Hello World案例
4.3.1 Windows运行
4.3.2 iOS运行
4.3.3 Andriod运行
4.3.4 沃Phone运行
4.4 总结
第5章 cocos2d-x引擎基础使用
5.1 整体架构
5.1.1 导演
5.1.2 摄像机
5.1.3 场景
5.1.4 布景
5.1.5 人物角色
5.1.6 动作
5.2 目录结构
5.3 坐标体系
5.4 跨平台常量
5.5 图形
5.6 动作
5.7 菜单
5.8 事件
5.9 变量自动释放
5.10 总结
第6章 cocos2d-x之高级特性
6.1 物理引擎
6.1.1 世界
6.1.2 刚体及刚体定义
6.1.3 形状
6.1.4 关联及关联定义
6.1.5 链接及链接定义
6.1.6 使用案例
6.2 粒子系统
6.2.1 重力式粒子系统
6.2.2 放射式粒子系统
6.3 声音模块
6.4 总结
第7章 cocos2d-x之周边工具
7.1 沃Phone 应用程序打包工具
7.1.1 软件包设置
7.1.2 应用配置
7.1.3 添加支持文件
7.1.4 保存编译
7.2 图片编辑器
7.3 地图编辑工具
7.4 粒子系统设计工具
7.5 总结
第8章 cocos2d-x之交叉编译
8.1 交叉编译到iOS平台
8.1.1 新建iOS项目
8.1.2 交叉编译
8.1.3 打包运行
8.2 交叉编译到Android平台
8.2.1 新建Android项目
8.2.2 生成编译脚本
8.2.3 交叉编译
8.2.4 打包运行
8.3 交叉编译到沃Phone平台
8.3.1 新建沃Phone项目
8.3.2 生成编译脚本
8.3.3 交叉编译
8.3.4 打包运行
8.4 总结
第9章 cocos2d-x之实用篇
9.1 游戏社交平台
9.2 手机广告平台
9.3 推广墙平台
9.4 技术准备
9.4.1 cocos2d-x调用Objective-C
9.4.2 cocos2d-x调用Java
9.5 案例实现
9.5.1 场景分析
9.5.2 环境准备
9.5.3 游戏设计
9.5.4 游戏实现
9.5.5 场景总结
9.6 总结
第10章 "魔塔"案例之基础篇
10.1 先熟悉一下游戏
10.2 准备工作
10.3 绘制最简单的游戏地图
10.4 人物行走
10.5 碰撞检测
10.6 总结
第11章 "魔塔"案例之高级篇
11.1 重构代码
11.1.1 分离场景和图层
11.1.2 分离游戏对象
11.1.3 小结
11.2 添加更多游戏元素
11.2.1 添加怪物
11.2.2 添加物品和门
11.2.3 添加对象层
11.2.4 小结
11.3 总结
第12章 未来展望
12.1 智能手机系统的发展趋势
12.1.1 iOS的发展趋势
12.1.2 Android的发展趋势
12.1.3 沃Phone的发展趋势
12.2 手机游戏的发展趋势
12.2.1 手机单机游戏
12.2.2 手机网络游戏
12.3 cocos2d-x引擎的发展趋势
内容摘要
这是一本为书立言的书,它几乎包含了与书有关的一切。《书之书》分为四辑:第一辑书香袭人,主要介绍了书之美、书之味、书腰、书签、藏书印、藏书票、书之态、毛边书、书虫;第二辑书之栖居,主要介绍了书架、书房、书店、图书馆;第三辑与书结缘,主要介绍了书痴、书商、读书、借书、藏书、窃书、禁书;第四辑书畔风景,主要介绍了书与影视、书与女人、书与咖啡、书与疗伤、书与广告。
以下为对购买帮助不大的评价