1.1 什么是Cocos2D
Cocos2D是一个开源框架,用于构建2D游戏、演示程序和其他图形界面交互应用等。
Cocos2D诞生于一个用于开发2D游戏的Python框架(www.cocos2d.org)。在2008年的冬天,技术爱好者把它引入到iPhone开发中,并使用Objective-C重新编写。由于Cocos2D-iPhone的巨大成功,目前Cocos2D已经衍生出了多个版本,包括Ruby、Java(Android)、C++,甚至Mono(C#/.NET)。
本书介绍的Cocos2D实际上是Cocos2D-iPhone(www.cocos2d-iphone.org),它是目前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的人们自发形成了一个异常活跃而友好互助的社区。其中,www.cocos2d-iphone.org/forum论坛非常活跃,里面有很多学习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的开发大军中来吧!