coco2d基本概念

来源:互联网 发布:小米抢购软件神器 编辑:程序博客网 时间:2024/05/16 08:27

coco2d基本概念场景(Scenes)主控器(Director)层(Layers)精灵(Sprites)

开发cocos2d程序前有必要对一些基本概念进行介绍:

场景

负责游戏内容

场景(通过 CCScene 对象实现)是程序的工作流程中相对独立的部分。有些人可能喜欢称呼其为“屏幕”或“舞台”。你的应用程序可能具有许多场景,但在某刻只能有一个活动的场景。

例如,你的游戏中可能有下列场景:介绍,菜单,第一关,过场一,第二关,过场二,胜利过场,失败过场,高分记录等等。

你可以将每个场景定义成一个独立的程序; 你可以通过某种逻辑将这些场景联系起来(比如当介绍中断或者完成后,就进入菜单场景,第一关成功将进入过场一,而失败则进入失败过场,等等)。



CCScene 是由一个或者多个层(通过 CCLayer 对象实现)组成。场景的外观和行为是通过层来实现的。

CCScene 类家族中还包括一组称为“过渡” (通过 CCTransitionScene 对象实现),它允许你在两个场景之间进行生成一些特殊的过渡效果(比如淡入淡出,滑入效果等等)。

由于场景是 CCNode 的子类,因此可以使用“动作”对场景进行变换。


主控器

-----总控制 单列模式 只有一个

CCDirector 是一个负责控制场景变化的元件。

CCDirector 是一个单例对象。它知道当前哪个场景是活动的,它负责处理场景的控制,并允许进行“场景调用”之类的操作(比如在进入另一个场景时,暂停当前场景,并在适当时候返回原始场景)。在CCLayer 要求替换当前场景后,实际上是 CCDirector 进行的场景切换。

另外, CCDirector 还负责OpenGL ES的初始化。


UI界面

CCLayer 拥有整个可进行绘制的区域,并且知道怎样对自身进行绘制。它还可以是半透明的(还可以在某些地方部分或者完全透明),这样可以看到层后的部分。层是对外观和行为进行定义的元件,所以大部分时间我们都说针对 CCLayer 及子类进行编程的。

CCLayer 还是进行事件处理的地方。事件是通过层进行传递直到某些层捕捉并进行处理。

尽管许多程序要求你定义自定义 CCLayer 类,但 cocos2d 提供了一些有用的预定义的层(比如简单的菜单层: CCMenu,颜色层: CCColorLayer, 其他层之间 的多路器:CCMultiplexLayer,等等)。

层还可以包括 CCSprite 对象, CCLabel 对象以及甚至是 CCLayer 对象。

由于层是 CCNode的子类,因此可以使用“动作”对场景进行变换。


精灵不实现鼠标事件

Cocos2d 的精灵与其他程序库描述的精灵一样,是一个可以进行移动,旋转,大小变化,动画等操作的2D图像。

精灵(通过 CCSprite 类实现)可以拥有其它精灵作为其子成员。当一个父成员进行变换时,其所有子成员也将同时进行变换。

由于精灵是 CCNode的子类,因此可以使用“动作”对场景进行变换。