CCDirector: 导演,负责场景的切换以及场景的信息。如宽度,高度,旋转场景内容。
CCScene: 场景. 场景包含有布景,精灵,每场戏的不同,要切换场景。游戏中可分为主界面, 游戏, 分数榜,结束界面等。
CCLayer: 布景. 类似是层的概念,也可来源于PS的层的概念。每一层都带有众多精灵等
CCSprite: 精灵。就是演员的,演员就需要加入到层里面去的。有相应的动作。
CCAction: 动作。精灵的动作。
场景切换时通过Director导演类来实现的,在cocos中定义了如下几种场景切换函数:
1,void runWithScene(Scene *scene)。这是一个运行场景的函数,该函数的使用情况是当前没有场景正在运行,因为一次只能运行一个场景。
2,void replaceScene(Scene *scene)。 这是第一种用来切换到另一个场景的函数,用一个新的场景来代替当前场景,当前场景则会被终端释放。
因为pushScene并不会销毁前一个scene,仅仅是将后一个scene按照堆栈的方式加入到前一个scene的上面。如果自身代码中内存管理写的不好的,利用pushScene很难发现该方面的问题,一旦崩溃定位都很难定位。replaceScene可以及早的将隐含的问题给暴露出来。
3,void pushScene(Scene *scene)。 这是第二种用来切换到下一个场景的函数,用一个新的场景来代替当前场景,当前场景挂起压入场景堆栈中。
void popScene(Scene* scene)。 该函数配合pushScene使用,用来返回上一个场景。
void popToRootScene(Scene*scene)。配合pushScene使用,返回根场景。
网友评论