CCDirecotor -> CCObject,TypeInfo
处理主窗口消息,管理何时、何种方式执行场景。
经常被翻译成导演,负责管理整个游戏的进程推动和周边支持。
inline CCScene* getRunningScene(voID) { return m_pRunningScene; }
获取当前运行的场景,一个时刻只有一个场景在运行
inline double getAnimationInterval(voID) { return m_dAnimationInterval; }
virtual voID setAnimationInterval(double dValue) = 0;
FPS相关设置
inline bool isdisplayStats(voID) { return m_bdisplayStats; }
inline voID setdisplayStats(bool bdisplayStats) { m_bdisplayStats = bdisplayStats; }
在程序左下角是否显示FPS信息
inline float getSecondsPerFrame() { return m_fSecondsPerFrame; }
获取一帧的时间(秒)
inline CCEGLVIEw* getopenGLVIEw(voID) { return m_pobOpenGLVIEw; }
voID setopenGLVIEw(CCEGLVIEw *pobOpenGLVIEw);
设置窗口,对于CCDirector这个导演来说,CCEGLVIEw可以类比为舞台。
inline bool isNextDeltaTimeZero(voID) { return m_bNextDeltaTimeZero; }
voID setNextDeltaTimeZero(bool bNextDeltaTimeZero);
inline bool isPaused(voID) { return m_bPaused; }
是否暂停了
inline unsigned int getTotalFrames(voID) { return m_uTotalFrames; }
帧数,自从这个导演启动后,调用的帧数
inline ccDirectorProjection getProjection(voID) { return m_eProjection; }
voID setProjection(ccDirectorProjection kProjection);
voID reshapeProjection(const CCSize& newwindowsize);
ccDirectorProjection相关
voID setVIEwport();
设置glVIEwPort
inline bool isSendCleanupToScene(voID) { return m_bSendCleanupToScene; }
是否一个被替换的场景会受到cleanup消息
CCNode* getNotificationNode();
voID setNotificationNode(CCNode *node);
用来显示全局消息的node,这个消息不受场景切换影响
CCDirectorDelegate* getDelegate() const;
voID setDelegate(CCDirectorDelegate* pDelegate);
导演代理,提供更新接口可供用户重新实现
CCSize getWinSize(voID)
CCSize getWinSizeInPixels(voID);
CCSize getVisibleSize();
CCPoint getVisibleOrigin();
getWinSize与getWinSizeInPixels的差别在于是否使用DesignResolutionSize,getWinSizeInPixsels是窗口实际大小
而getWinSize是DesignResolutionSize,getVisibleSize是在有DesignResolutionSize的情况下,有对不齐的情况时不一样的值
CCPoint convertToGL(const CCPoint& obPoint);
CCPoint convertToUI(const CCPoint& obPoint);
坐标转换,从GL坐标到UI坐标的相互转换,GL坐标左下角为原点,UI坐标则是坐上角
voID runWithScene(CCScene *pScene);
进入scene,这个函数在第一次进入scene时候调用
voID pushScene(CCScene *pScene);
暂停当前scene,将其推入暂停scene栈,启动新的scene
voID popScene(voID);
d出当前运行的scene,如果栈中还有scene,那么继续栈顶的scene,如果没有,程序退出
voID popToRootScene(voID);
d出所有的scene,除了最后一个不d
voID popToScenestackLevel(int level);
d到某个地方,如果level为0,那么相当于程序结束,如果level为1,那么相当于popToRootScene,如果level大于栈深度,那啥也不干
voID replaceScene(CCScene *pScene);
替换scene,和pushScene不一样的是,replace不在栈中保存,是直接替换
voID end(voID);
voID pause(voID);
voID resume(voID);
进度管理,结束,暂停,继续scene
virtual voID stopAnimation(voID) = 0;
virtual voID startAnimation(voID) = 0;
停止和开始画场景,默认实现和pause、resume相同
voID purgeCachedData(voID);
清空缓存,主要是CCTextureCache,CCSpriteFrameCache,cclabelBMFont所指缓存
在cocos2dx中有不少缓存类,这些缓存类,类似舞台上的常用道具,常用道具当然放在离演员最近的地方(内存)
但是当地方(内存)不够时,导演负责指挥清除这些缓存。
voID setDefaultValues(voID);
voID setGLDefaultValues(voID);
voID setAlphaBlending(bool bOn);
voID setDepthTest(bool bOn);
设置一些OpenGL参数
voID setContentScaleFactor(float scaleFactor);
float getContentScaleFactor(voID);
设置缩放因子
virtual voID mainLoop(voID) = 0;
主循环,负责画scene
static CCDirector* sharedDirector(voID);
获取单例的导演对象
转自:http://blog.csdn.net/itcastcpp/article/details/18666233 总结以上是内存溢出为你收集整理的cocos2dx进阶学习之CCDirector全部内容,希望文章能够帮你解决cocos2dx进阶学习之CCDirector所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)