cocos2d基本概念
在这片文章中将会介绍一些基本概念,你要开发cocos2d应用程序这些是必须要了解的。
- Scene (场景)
- Director (导演)
- Layer (层)
- Sprite (精灵)
- Scene (场景)
scene(实现对象是CCScene)是应用中的一个几乎独立的工作流程。有人可能把它称作“screens”或者“stages”(舞台)。
你的app可以有许多的scene,但是在一个给定的时间内只能有一个激活的scene。
举例来说,你可以有一个游戏带有下面这些scene:介绍,菜单,第1关,剧情1,第2关,胜利的剧情,失败的剧情,最高分屏。
你可以完全自己定义每一个scene甚至几乎可以像一个个单独的app,它们之间包含一点逻辑上的联系就是scene之间的连接
(当介绍停止或被中断时,如果是正常结束Level1会转到cutscene1,否则你失败了就会转到Losing cutscene...)
cocos2d的CCScene是由一个或多个layers(层)(由CCLayer对象实现)组成的,它们被重叠到一起。Layers使scene可以显示
(appearance )并且存在一定的行为(behavior)。正常情况下,用你所需要的那个layers来实例化Scene。
这里有个CCScene的子类叫做transitions(由CCTransitionScene对象实现),它允许你在两个scene之间制作过渡效果。
(淡入/淡出,从一边进入,等等)
因为scenes是CCNode的子类,它可以手动的变换或使用actions变换。想了解更多actions的细节请参阅Actions。
- Director (导演)
- Layers (层)
CCLayer有一个可绘制的区域,并且知道如何绘制它自己。它可以是半透明的,允许看到它下面的layers。Layers就是
定义的一个显示(apperance)+行为(behavior),所以你的绝大都数时间都会花费在编写CCLayer的子类完成自己的功能上。
CCLayer也是你定义事件处理器的地方。事件传递给layers(从前倒后)直到一些layer捕获到事件并接受事件。
尽管一系列的app都会要求你去定义自己的CCLayer类,但是cocos2d也提供了一些预定义的layers(一个简单
地菜单layer:CCMenu 一个颜色layer:CCColorLayer,一个layer之间的混合器:CCMultiplexLayer,等)。
layers可以包含CCSprite对象,CCLabel对象和其他CCLayer对象的子类。
因为scenes是CCNode的子类,它可以手动的变换或使用actions变换。想了解更多actions的细节请参阅Actions。
- Sprites(精灵)
cocos2d的精灵和其他计算机的精灵差不多。精灵就是个2D的图片可以移动,旋转,缩放,动画,等。
Sprites(由CCSprite实现)可以拥有其它的sprites作为孩子。当父精灵移动变换时,所有它的孩子都会跟着移动,
因为scenes是CCNode的子类,它可以手动的变换或使用actions变换。想了解更多actions的细节请参阅Actions。