在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景)、布景(CCLayer)、角色(CCSprite)等的运动,均由CCDirector管理,其在游戏中起着指定游戏规则让游戏内的场景、布景和任务有序的运行。在整个游戏里面,一般只有一个导演,游戏开始和结束时,都需要调用CCDirector的方法完成游戏初始化或销毁工作.在Cocos2d-x中是很重要的一个类,用于统筹管理,主要完成以下工作:
- 初始化游戏和销毁游戏;
- 管理调度场景;
- 调整设置OpenGL信息;
- 获取、设置游戏的相关细节;
使用方法:Director::getInstance()->MethodName
类CCDirector继承关系图
属性相关
//获得当前运行的场景,cocos2dx同时只能运行一个场景
Scene* getRunningScene();
//获取fps值
double getAnimationInterval();
//设置fps值
void setAnimationInterval(double dValue);
//fps是否是显示状态
bool isDisplayStats();
//设置是否显示fps
void setDisplayStats(bool bDisplayStats);
//获取每帧秒数
float getSecondsPerFrame();
//获取openGLView
GLView* getOpenGLView();
//设置openGLView
void setOpenGLView(GLView *pobOpenGLView);
//判断是否暂停
bool isPaused();
//获取调用到现在的所有帧数
unsigned int getTotalFrames();
//判断被替换的场景是否接收到cleanup事件
//replace方式会,而push方式则不会
bool isSendCleanupToScene(void);
窗口相关
//返回以点为单位openGL视图的大小
const Size& getWinSize() const;
//返回以像素为单位openGL视图的大小
Size getWinSizeInPixels() const;
//返回以点为单位的 OpenGL 视图的可见大小.
Size getVisibleSize() const;
//返回以点为单位的 OpenGL 视图的初始化时的可见大小
Vec2 getVisibleOrigin() const;
//UIKit的坐标转换到一个OpenGL坐标 使用当前布局(横向或纵向)有效的(多)触摸坐标
Vec2 convertToGL(const Vec2& point);
//一个OpenGL坐标转换到UIKit的坐标 点组成的窗口调用有效的节点上面的点
Vec2 convertToUI(const Vec2& point);
场景管理相关
//根据给定的场景进入 Director的主循环 只能调用他运行你的第一个场景
void runWithScene(Scene *scene);
//暂停执行正在运行的场景中,pushing一个在堆栈上推暂停的场景。 新的场景将被执行.
void pushScene(Scene *scene);
//从队列中弹出一个场景。 这个场景将替换正在运行的场景.
void popScene();
//从队列中弹出所有的场景,直到只有根场景在队列中 这个场景将替换正在运行的场景.
void popToRootScene();
//弹出从队列中的所有场景,直到它到达 level.
void popToSceneStackLevel(int level);
//用一个新的替换正在运行的场景。终止正在运行的场景。 仅在有一个正在运行的场景的时候调用他.
void replaceScene(Scene *scene);
//结束执行,释放正在运行的场景。
void end();
//暂停正在运行的场景。
void pause(void);
//恢复暂停的场景 预定的定时器将被再次激活。 “推迟执行”的时间将是0(如果游戏没有暂停)
void resume();
内存和OpenGL
//移除所有cocos2dx缓冲数据
void purgeCachedData(void);
//设置默认值
void setDefaultValues(void);
//设置OpenGL默认值
void setGLDefaultValues(void);
//开关OpenGL alpha混合通道
void setAlphaBlending(bool bOn);
//设置景深测试
void setDepthTest(bool bOn);