Cocos2D研究院之初识Cocos2d
时间: 2012-05-19 / 分类: 【Cocos2D研究院之游戏开发】 / 浏览次数: 8,168 浏览数 / 19条评论
在正式介绍cocos2d之前,我先啰嗦一下本人对这套引擎的看法。我认为cocos2d最大的作用就是降低开发成本,对于研发部门来说,最大的成本就是时间,所以节省时间是降低成本最有效的方式,cocos2d几乎封装了所有开发ios游戏需要的底层代码,使刚刚接触OC的开发者也能很快的制作出效果不错的游戏。可以这样说,只要你掌握了的基本语法以及Foundation框架的常用API,就可以用 cocos2d开发游戏了,因为很多东西它都帮你完成了,不需要你花过多的精力去学习API的使用。同时cocos2d还是完全免费的,这一点使它在 ios平台上的实用性超过了Unity3d。
现在我来说一下cocos2d项目的结构。新建的cocos2d项目最外层有3个目录,分别存放代码、类库和app包。
代码目录的结构如下图所示:
最上面的几个是开发者自己编写的类,当然图中是一个新建的项目,所有类都是引擎自动写好的。Resources目录用来存放资源,libs中是cocos2d库的源代码,Supporting Files中是入口函数(main)。
Libs路径结构,其中cocos2d的逻辑代码都存放在cocos2d路径中。
Supporting Files路径,入口类就放在这里,但是实际开发过程中基本不需要过问。
Frameworks路径,其中最常用的就是Foundation.framework了。
读者们可能已经发现,cocos2d的源码是开放的,这有利于我们研究它的内部结构,从而加深理解,但作者建议不要去修改源代码,因为cocos2d是一个标准,是完全公开的,就是说所有cocos2d项目中的libs应该是完全一致的,如果修改了,引擎就会失去兼容性, 在这个项目能够正常运行的代码到了另一个项目就会报错,所以我们在开发时最好把它看成一个SDK,只要使用它的API就好。
好吧,貌似又说了一堆和引擎的研究无关的东西,接下来我真的要将引擎的实际应用了
在作者看来,cocos2d中最常用的类可以大致分为两部分——实体类和行为类。
所谓实体类就是非常容易具体化,我们能够直观的感受到的东西,比如我们现实生活当中的桌子、图片、人,这些是现实中实际存在的,实体类可以说就是对这些东西的模拟,当然也有稍微抽象一些的,比如菜单、按钮,但不管怎么说我们都很好理解它们的存在;
行为类相比之下就显得很抽象了,它们封装的主体并不是某一事物(或者说是属性),而是方法,就是该类的实例表示的是实体类的一种行为模式,不同的行为模式需要不同的类来封装。从语文的角度讲,实体类就是主语(谁),行为类就是谓语(做什么),根据作者的开发经验,cocos2d大部分时间都是在围绕这两者工作。
cocos2d中的类采用的是树状继承的方式,即最上层的基类只有几个,拓展功能都是通过一层层的继承父类来实现的,这样做便于类于类之间的协作, 因为很多接口都是共通的(都来自于基类)。
实体类的基类是CCNode(cocos2d的所有类都以CC开头,这就表示你完全可以54它的存在= =b),它是所有实体类的父类,它内部封装的参数与方法是整个引擎中出镜率最高的,可以说是cocos2d的核心(菜单、精灵都是继承自它),下一章节会对它进行详细介绍。
行为类则大部分继承自CCAtion,它的子类实例可以让一个CCNode对象执行一个行为,比如旋转、移动,甚至是自定义的行为,一个CCNode可以同时执行多个行为或是按顺序执行一个行为序列,有了这些类,开发者就可以在游戏中轻松加入各种华丽的效果了。
posted on 2014-05-30 13:31 amamatthew 阅读(60) 评论(0) 收藏 举报
浙公网安备 33010602011771号