资深专家根据Cocos2D新版本撰写,内容全面,本书系统讲解了Cocos2D的使用方法、技术要点、工作原理、开发技巧实践以及性能优化;实战性强,通过精心设计的典型案例完美呈现了Cocos2D游戏设计与开发的完整过程,极富启发性
海报:
《Cocos2D权威指南》是目前Cocos2D领域内容最全面、系统和深入的一本著作,也是技术版本最新的一本著作。由国内iOS和Cocos2D领域的先驱和资源专家撰写,不仅系统讲解了Cocos2D的使用方法、技术要点、工作原理、高级知识、开发技巧、最佳实践和性能优化,而且通过精心设计的典型案例详细讲解了Cocos2D游戏设计与开发的完整过程,极具启发性和可操作性。此外,还介绍了如何进行应用的测试与发布,以及Cocos3D、Cocos2D-x、Cocos2D-HTML5、Cocos2D-Python等衍生技术。
《Cocos2D权威指南》全书共19章,分为三个部分:基础篇(第1~9章)系统讲解了Cocos2D v2.0的功能特性、使用方法、技术要点和工作原理,通过超级玛丽等3个经典游戏将Cocos2D中的核心类、动作、特效、动画、文本渲染系统、事件处理机制、声音、瓷砖地图、Box2D等内容贯穿其中,真实有趣,易于理解;实战篇(第10~12章),通过对Angel Panda和Angry Panda两款经典游戏的设计与开发过程的讲解,为读者展示了使用Cocos2D开发游戏的完整流程,可操作性极强;高级篇(第13~19章),着重讲解了Cocos2D v2.0的高级知识、实用开发技巧和最佳实践,包括粒子系统、CocosBuilder和Shader、在游戏中添加对IAP的支持、性能分析与优化、产品的测试/发布/推广,以及Cocos2D的延伸技术。
第一部分
基 础 篇
本部分内容
开始前的准备工作
你的第一款iPhone游戏—垂直射击游戏
Cocos2D核心类
Cocos2D中的动作、特效与动画
Cocos2D中的文本渲染系统
Cocos2D中的事件处理机制
Cocos2D世界的声音
在Cocos2D中使用瓷砖地图
物理引擎—更真实的Cocos2D世界
第1章 开始前的准备工作
本章我们将介绍什么是Cocos2D以及有关Cocos2D的一些重要基础知识,包括如何下载与安装Cocos2D-iPhone的模板、如何安装Cocos2D-iPhone的帮助文档。最后,通过一个有趣的实例介绍如何创建一个最基本的HelloCocos2D项目,并带领读者对这个项目进行深入学习。
1.1 什么是Cocos2D
Cocos2D是一个开源框架,用于构建2D游戏、演示程序和其他图形界面交互应用等。
Cocos2D诞生于一个用于开发2D游戏的Python框架。在2008年的冬天,技术爱好者把它引入到iPhone开发中,并使用Objective-C重新编写。由于Cocos2D-iPhone的巨大成功,目前Cocos2D已经衍生出了多个版本,包括Ruby、Java(Android)、C++,甚至Mono(C#/.NET)。
本书介绍的Cocos2D实际上是Cocos2D-iPhone,它是目前Cocos2D的最主要分支(后面为了统一,提到的所有Cocos2D均指Cocos2D-iPhone)。
使用Cocos2D可以轻易地开发iPhone、iPod Touch、iPad和Mac上的游戏。可以把Cocos2D作为一个库导入自己的Xcode项目,也可以使用内置的Cocos2D模板来创建一款新游戏。
1.1.1 Cocos2D的特点
易于使用:使用Cocos2D,游戏开发者可以把关注的焦点放在游戏机制的设计本身,而不必耗费大量时间学习晦涩难懂的低级API。此外,Cocos2D中还提供了大量的范例。
高效:Cocos2D使用OpenGL ES进行图像渲染,从而让iOS设备的GPU性能发挥到极致。此外,它还对数据结构进行了优化。
灵活:方便扩展,易于集成第三方类。
免费:作为一个免费的开源引擎,用户可以放心地免费使用,而无须考虑商业授权的问题。
社区支持:关注Cocos2D的人们自发形成了一个异常活跃而友好互助的社区。其中,论坛非常活跃,里面有很多学习Cocos2D和解决相关难题的资源,从中还可以了解Cocos2D的最新进展。
支持平台:iPhone、iPod Touch、iPad和Mac OS X。
1.1.2 Cocos2D的主要功能
场景管理(Workflow):非常容易管理不同场景(Scene)。
场景切换(Transitions):可以方便地从一个场景切换到另外一个不同风格的场景,并支持各种场景间的切换特效。
精灵(Sprites)和精灵表单(Sprite Sheets):支持快速而方便的精灵以及高效的精灵表单。
特效(Effects):特效包括波浪(Waves)、旋转(Twirl)、透镜(Lens)、涟漪(Ripple)和液体(Liquid)等。
动作(Actions):告诉精灵可以做什么动作。动作分为基本动作、组合动作、缓冲动作和其他动作。基本的动作有移动(Move)、旋转(Rotate)、缩放(Scale)和跳跃(Jump)等;组合动作有顺序动作(Sequence)、并发动作(Spawn)、重复动作(Repeat)、反转动作(Reverse);缓冲动作有Exp、Sin、Cubic等;其他动作有CallFunc、OrbitCamera等。
菜单和菜单按钮(Menus &MenuItems):可以轻松地创建内部菜单和菜单按钮。
物理引擎(Physics Engine):Cocos2D内置支持Box2D和Chipmunk两个物理引擎。
粒子系统(Particle System):Cocos2D中包含一个强大的粒子系统,可以给游戏添加各种很炫的效果,如烟、火、雨、雪等。
文本渲染(Text Rendering):支持可变和固定宽度的字体。在Cocos2D中处理文字非常容易,这一点对于显示游戏中的菜单和得分,以及进行辅助性的游戏测试等都非常有用。Cocos2D中内置了对TrueType字体的支持,同时还支持快速位图字体渲染系统。这样,开发者仅需编写数行代码即可在屏幕上显示文字。
纹理图集(Texture Atlas):支持纹理图集,从而大大节省了应用中的内存占用。
瓷砖地图(Tiled Maps):支持正交地图、斜视角地图和六边形地图。
视差滚动(Parallax Scrolling):支持使用视差滚动来营造立体的背景氛围。
音效:支持背景音乐和游戏中的音效。
Streak Motion:支持Streak Motion(一种类似疾驰的飞机尾部喷出的气体的效果)。
渲染到纹理(Render Texture):支持渲染到纹理。
Point Based API:支持Retina显示,可以使用同样的坐标值来处理普清和高清模式下的游戏元素布局。
输入设备:支持触摸/加速计(iOS),键盘/鼠标(Mac)。
显示模式:支持纵向和横向模式(iOS),自动全屏(Mac)。
暂停/恢复:内置支持游戏的暂停/恢复。
快速纹理:支持8位、16位和32位PVRTC压缩纹理。
编程语言:Cocos2D-iPhone使用Objective-C编写,同时可混合使用C或C++语言。
图形引擎:Cocos2D 1.x版本支持OpenGL ES 1.1(iOS)/OpenGL 1.5(Mac),而最新的Cocos2D v2.0则支持OpenGL ES 2.0。
1.1.3 Cocos2D应用
从Cocos2D官方网站的信息可知,苹果App Store中已经有超过2500款游戏是使用Cocos2D开发的,而且这个数字还在不断地增加。其中,很多游戏进入过TOP100,甚至TOP10。新鲜出炉的2011年度最佳iPhone游戏(iPhone Game of The Year)Tiny Tower就是使用Cocos2D开发出的成功之作,如图1-1所示。
该游戏的开发者是独立游戏工作室NimbleBit的双胞胎兄弟David和Ian Marsh,他们的另一款成功之作Pocket Frogs同样使用Cocos2D开发。
在App Store美国区Top Grossing Apps总榜上,Tap Pet Hotel、Tap Zoo、Zombie Farm等产品都是使用Cocos2D开发的。
此外,在IPO上市的著名社交游戏公司Zynga于2011年6月收购了Cocos2D,开始在自己的多款iOS平台作品中使用该框架,并继续将其向普通开发者开源。
看到这些独立开发者和公司的辉煌战绩,你还在等什么呢?赶紧加入到Cocos2D的开发大军中来吧!
1.2 下载与安装
本节介绍Cocos2D的下载与安装。如果想使用Cocos2D开发iPhone应用或游戏,首先要下载Cocos2D的模板,然后安装该模板,最后创建Cocos2D的帮助文档。下面分别来介绍这几个步骤。
1.2.1 下载Cocos2D
首先登录Cocos2D的官方网站,切换到Download选项,可以看到如图1-2所示的网站页面。
由图1-2可以看到,Cocos2D的最新稳定版本有v1.0.1和v2.0版。考虑到Cocos2D v2.0版本支持众多的新特性,同时也是今后官方主力维护的版本(1.x版本留给社区更新,而引擎的主力开发者Ricardo Quesada将主要负责Cocos2D v2.0及其后续版本的更新与维护),本书将直接使用最新的v2.0版本。直接单击“cocos2d-iphone-2.0.tar.gz”这个链接就可以开始下载了。
当然,这只是其中一种方式,在这里,我们向大家推荐一种更加方便的做法,那就是使用Git。Git和SVN一样,也是一款源代码管理工具,它和SVN最大的区别就是:Git是分布式的,而SVN是集中式的。具体的区别大家可以通过Google查看,建议大家深入学习一下。为什么要使用Git呢?首先,Cocos2D目前放在GitHub上面托管,全世界所有的开发者都可以非常方便地从GitHub上面获取到Cocos2D的最新开发进展的源代码,同时可以向该项目贡献源代码。
……
Cocos2D是当前在移动平台上开发互动娱乐应用的首选2D游戏引擎,深受iOS和Android平台游戏开发人员的喜爱。Cocos2D以其简单易学、强大的功能和效率使开发人员可以在短时间内迅速制作出游戏原型,极大地提高了开发效率。更为重要的是,当前Cocos2D引擎家族开发者设立了清晰的未来发展目标,也即为创建多平台的2D网络或移动游戏提供最强大的工具,并提供了Cocos2D-HTML5、Cocos2D-iPhone、Cocos2D-x及CocosBuilder等多个衍生版本及工具。目前App Store及Android市场上大多数的畅销2D游戏均采用Cocos2D及其衍生版本创建,学习与掌握好Cocos2D是移动平台2D游戏开发的必然趋势。
与市场上其他学习Cocos2D的书籍不同,本书对于Cocos2D引擎的技术细节做了详细的阐述和说明,并提供了针对性的示例项目讲解说明。既有利于初学者迅速了解Cocos2D引擎的基本使用,同时也便于有一定经验的开发者作为工具书查询相关技术细节。此外,本书还提供了两个综合示例,这有助于开发者从近似实战的角度来了解如何使用Cocos2D引擎。最后,针对项目开发的实际需要,还特别介绍了Cocos2D引擎家族的其他衍生版本和CocosBuilder工具。
目前,基于移动终端的游戏开发如火如荼,当大家看到一个又一个神话诞生的时候肯定都跃跃欲试了。但很多人苦于不是计算机专业或游戏相关专业毕业的而无法进入该行业,“游戏开发=程序员”是一种错误的认识,目前更重视创意和设计,因为大量的工具、引擎为游戏设计做好了铺垫。如果你想从事游戏开发,强烈建议阅读本书,本书可以让你在极短的时间内通过Cocos2D开发出属于自己的游戏。
—— 李万鹏 成都优聚科技(GoodTeam Studio) CEO(旗下知名游戏:帝国塔防系列)
Cocos2D-iPhone和Cocos2D-x近年来在移动游戏开发者中广泛流行,它为大量PC平台游戏开发者转向移动平台开发抹平了学习曲线,并成为很多卖座游戏成功的基石。本书作者拥有丰富的移动平台开发经验,书中对基于Cocos2D-iPhone的移动游戏开发进行了全面深入的介绍,并提供了丰富的代码示例,相信可以让有意从事移动游戏开发的同学迅速入门,并打下坚实的基础。
—— 李勇 深圳盛游网络科技有限公司CEO