Cocos2d采用场景树结构来管理游戏对象,把一个游戏划分为不同的场景,场景又可以分为不同的层,一个层又可以拥有任意个可见的游戏对象.游戏 对象又可以执行Action来修改其属性.每一个时刻都有一个场景在独立运行,通过切换不同的场景来完成一个游戏流程.cocos2d还采用了引用计数的 方式来管理内存,基本上所有的类都派生于拥有引用计数的机制的CCObject.其基本框架类图如下:
1.CCDirector,是整个游戏引擎的核心,存储了很多全局配置信息,用于管理所有场景,相当于电影的导演...
可用
[CCDirector sharedDirector]
获得。
2.CCNode,是所有节点的基类,它是一个抽象类,定义了所有节点的公共属性和方法.
3.CCScene,也是一个抽象类,基本上只是用来当作CCLayer的容器和CCDirector调度。也没有什么独特的属性和方法。一般都是在创建CCLayer时一同创建。
+ (CCScene *)scene {
CCScene *scene = [CCScene node];
GameLayer *layer = [GameLayer node];
[scene addChild:layer];
return scene;
}
用于CCDirector调度:
//only use this to run the very first scene
[[CCDirector sharedDirector] runWithScene: [IntroLayer scene]];
//use this to change all subsequent scene
[[CCDirector sharedDirector] replaceScene: [IntroLayer scene]];
//use this to display new scene above the current scene
[[CCDirector sharedDirector] pushScene: [IntroLayer scene]];
//use this to return to the previous scene
[[CCDirector sharedDirector] popScene: [IntroLayer scene]];
3.CCLayer,场景中的层,一个场景可以拥有多个层,如背景层,游戏对象层,设置层等,层是一个可以绘制的区域.可以将ui,sprite等对象添加到其中.除此之外,层还接收输入消息,可以在层的类中处理输入消息,和CCScene一样,CClayer是 CCNode的子类,也可以用CCAction来修改其属性
6.CCSprite, cocos2d中最常用的类,用于把图像显示到屏幕上。后面会专门深入学习。
7.CCAction,精灵的各种行为特效,分为瞬时动作和延时动作。cocos2d内置很多动作特效,后面我们会学到。