注意:
相对于Objective-C而言,你可能更喜欢别的编程语言,但我还是建议你学习Objective-C。我原本有很深的C++和C#背景,而且Objective-C语法乍一看还挺古怪,所以一开始我并不情愿去学这个据说是又陈旧又过时的编程语言。果不其然,有段时间我的日子过得相当挣扎,我必须摒弃已经养成的编程习惯和思维模式才能弄清楚怎样用Objective-C来写程序。
但是,千万不要因为困难就放弃学习Objective-C。你确实需要花点时间去习惯它,但是这样的付出马上就会得到回报(只要教程和文档足够充分)。所以,再多努力都是值得的!
1.1.4 2D游戏引擎
显然,cocos2d中的“2d”已经表明了它是一个专注于开发2D游戏的引擎,这在当今众多的iOS游戏引擎中算是少见的。虽然它也可以用于加载并显示3D对象,但是你必须自己写出3D渲染代码,否则就只能采用别的方法来加载和显示3D模型了。我想说的是,iOS设备是一个非常理想的2D游戏平台。它们通常比较容易开发,也比较容易理解。很多情况下,它们对硬件的要求比较低,因此你可以创建更色彩鲜明、更细致的图形。
1.1.5 物理引擎
目前有两种集成在cocos2d里的物理引擎可供选择:Chipmunk和Box2D。这两种物理引擎仅仅在编写它们的语言上有一些细微的差别:Chipmunk是用C编写而成的,而Box2D是用C++编写而成的,但它们的功能几乎完全一样。当然,如果你仔细比较,还是会发现一些差别。不过,想要根据这些差别来作出选择,就必须对物理引擎的工作机制有非常深入的理解。通常,应该选择一个你觉得比较容易理解的且提供的文档比较好的物理引擎,所以大多数开发者都比较倾向于使用Box2D。而且,因为Box2D也采用了面向对象的思想,所以与Objective-C一起使用会比较方便。
1.1.6 技术难度较低
游戏开发者最喜欢cocos2d的地方就在于它把底层的OpenGL ES代码封装得特别好。大多数图形都是用简单的精灵类(CCSprite)来显示的,而精灵对象又是根据图像文件创建的。也就是说,一个精灵对象就是一个具有缩放、翻转和着色能力的纹理,只要简单地对精灵对象相应的Objective-C属性稍作修改就可以完成这些效果。你并不需要关心OpenGL ES代码的具体实现,这就是cocos2d的美妙之处。
同时,你可以灵活地对任意游戏对象在任意时刻添加自己的OpenGL ES代码。而且,Cocoa Touch中的用户界面元素在cocos2d中也是适用的。
cocos2d引擎不仅封装了OpenGL ES的实现细节(这样你就不用费尽心思去理解那些错综复杂的步骤了),还对一些比较通用的操作进行了高度的抽象,其中包括一些实现起来需要大量iPhone SDK背景知识的操作。但是,cocos2d并不会阻止你去接触底层的实现。
1.1.7 依然需要编程
总的来说,cocos2d确实简化了iOS游戏的开发过程,但出色的编程技巧依然是需要掌握的。其他iOS游戏引擎,如Unity、iTorque和Shiva,都着重于向用户提供工具箱和工作流来降低对编程能力的要求。使用这些引擎固然方便,但也失去了一些技术上的自由,而且还得付费。至于cocos2d,要使用它确实需要花些功夫,但是相比其他引擎,cocos2d更能凸显出游戏编程的本质。使用cocos2d的开发者关注的是游戏编程的核心问题,同时由于cocos2d良好的封装性,他们又不必真正地去处理最底层的实现。
1.1.8 超棒的cocos2d社区
在cocos2d社区,总有人能很快地回答你的问题,并且开发者可以自由地在这里分享知识和信息。
在这里,几乎每天都有新的教程和源码示例发布,而且大多数都是免费的。你会发现网上实在有太多太多的资源可供学习、带来灵感。
一旦游戏制作完成并在App Store上架,你就可以把它推荐到cocos2d网站上。这么做至少可以帮助你获得其他开发者的关注,幸运的话还会得到一些非常有价值的反馈信息。
注意:
如果想要密切关注cocos2d社区的最新动态,建议你成为Twitter上cocos2d的粉丝(http://twitter.com/cocos2d)。
如果想成为我的粉丝,可以访问http://twitter.com/gaminghorror。
在Twitter的搜索框内输入“cocos2d”,然后单击Save this search链接。这样你平时只需一次单击就可以经常地查看cocos2d的新帖子了。通常来说,这么做能让你看到一些非常有用但却容易忽略的cocos2d的相关信息。而且,你一定会在这里结识不少使用cocos2d的开发者。