在cocos2d-x里面,游戏的任何时间,只有一个场景对象实例处于运行状态,该对象可以作为当前游戏内容的整体包对象。
Cocos2d-x引擎除了提供了CCDirector,还提供了一个CCDisplayLinkDirector,CCDisplayLinkDirector是一个可以自动刷新的CCDdirector。
CCDirector主要函数如下:
CCScene * getRunningScene (void) //获取当前运行的场景
double getAnimationInterval (void)//获取当前的FPS
virtual void setAnimationInterval (double dValue)=0 //设置FPS
bool isDisplayFPS (void) //是否在屏幕底部显示FPS
void setDisplayFPS (bool bDisplayFPS) //设置在屏幕底部显示FPS
CC_GLVIEW * getOpenGLView (void) //获取CCEGLView
void setOpenGLView (CC_GLVIEW *pobOpenGLView) //设置CCEGLView
bool isPaused (void) //当然是否适合暂停
unsigned int getFrames (void) //获取从director开始起,所有被调用的Frames的数量
ccDirectorProjection getProjection (void) //获取OpenGl的projection
void setProjection (ccDirectorProjection kProjection) //设置Opengl 的projection
bool isSendCleanupToScene (void) // 场景替换时,是否接收到cleanup时间,若新的的场景是被push进来的,旧的场景不会收到cleanup 事件,若新的场景是被替换进来的,旧的场景就能够收到cleanup事件。
CCSize getWinSize (void) //获取Open gl view的大小,单位为点
CCSize getWinSizeInPixels (void) // 获取以像素为单位的open gl view大小
CCSize getDisplaySizeInPixels (void) //获取以像素为单位的open gl view 的显示区域大小
void reshapeProjection (const CCSize &newWindowSize) //改变projection的大小
CCPoint convertToGL (const CCPoint &obPoint) //将UIKIT坐标体系转化为opengl坐标体系
CCPoint convertToUI (const CCPoint &obPoint)//将opengl坐标体系转化为UIKIT坐标体系
float getZEye (void) //获取缺省镜头Z的位置
void runWithScene (CCScene *pScene) //运行场景
void pushScene (CCScene *pScene) //push场景
void popScene (void)//pop场景
void replaceScene (CCScene *pScene) //替换场景
void pause (void) //暂停游戏
void resume (void) //回复游戏
virtual void stopAnimation (void)=0 //停止动画
virtual void startAnimation (void)=0 //开始动画
void drawScene (void) //每次frame都会被调用,无需自己调用
void purgeCachedData (void) //删除缓存的数据
void setGLDefaultValues (void) //设置Opengl的默认值
void setAlphaBlending (bool bOn) //设置是否启用opengl的alpha通道
void setDepthTest (bool bOn)//设置是否测试景深
virtual void mainLoop (void)=0//游戏主循环
void applyOrientation (void) //是设备方向设置生效
ccDeviceOrientation getDeviceOrientation (void) //获取设备方向
void setDeviceOrientation (ccDeviceOrientation kDeviceOrientation) //设置游戏横屏
bool enableRetinaDisplay (bool enabled) //设置是否启用视网膜屏支持
bool isRetinaDisplay ()//是否启用视网膜屏支持
void resetDirector () //重置游戏
static bool setDirectorType (ccDirectorType obDirectorType) //设置directortype,目前主要有kCCDirectorTypeNSTimer、kCCDirectorTypeMainLloop,kCCDirectorType-ThreadMainLoop、kCCDiretorTypeDisplayLknk