介绍
CCDirector类对应cocos2d-x引擎里的导演,整个游戏里只有一个导演,游戏开始和结束时都需要调用CCDirector的方法完成游戏初始化或者销毁的工作。
cocos2d-x引擎里面除了提供CCDirector,还提供了一个CCDisplayLinkDirector,CCDisplayLinkDirector是一个可以自动刷新的CCDirector.
类结构图
CCDisplayLinkDirector 继承自 CCDirector ,CCDirector继承自CCObject。即:
作用
人物角色或者背景不应该依赖层、层不应该依赖场景、场景不应该依赖整个游戏。导演对象是流程的总指挥,它负责游戏全过程的场景切换。这也是典型的面向对象和分层的设计原则。
主要函数
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
版权信息:原创文章:
咸蛋博客
本文标题:
cocos2d-x学习之CCDirector
本文链接:
http://xiandanboke.com.cn/?p=757转载请注明转自
咸蛋博客
如果喜欢:
点此订阅本站