一、概述
CCDirector.h文件包含三个部分:一个ccDirectorProjection枚举类型、CCDirector类自身的定义,以及CCDirector的子类CCdisplaylinkDirector(对CCDirector中4个纯虚函数的实现)。源码如下,已有英文注释,另有少量我自己的注释:
typedef enum { /// sets a 2D projection (orthogonal projection) kCCDirectorProjection2D,/// sets a 3D projection with a fovy=60,znear=0.5f and zfar=1500. kCCDirectorProjection3D,/// it calls "updateProjection" on the projection delegate. kCCDirectorProjectionCustom,/// Default projection is 3D projection kCCDirectorProjectionDefault = kCCDirectorProjection3D,} ccDirectorProjection;class CC_DLL CCDirector : public CCObject,public TypeInfo{ // 略};class CCdisplaylinkDirector : public CCDirector{public: CCdisplaylinkDirector(voID) : m_bInvalID(false) {} //@@原来都是CCDirector中的纯虚函数 virtual voID mainLoop(voID); virtual voID setAnimationInterval(double dValue); virtual voID startAnimation(voID); virtual voID stopAnimation();protected: bool m_bInvalID;};
二、分析
0、CCDirector的父类除了CCObject,还有个TypeInfo,该类只有一个方法getClasstypeInfo,看名字是用于获得类的类型信息,暂不细究。
1、ccDirectorProjection这个枚举类型似乎似乎和项目设置相关,暂不细究。
2、CCdisplaylinkDirector是对CCDirector中4个纯虚方法的实现,同样暂不细究。
3、剩下的就是CCDirector中的方法和成员变量了:
0)项目生成后自动使用的:setopenGLVIEw、setAnimationInterval、runWithScene、stop/startAnimation
1)常用的:获取单例、push/pop/replaceScene、pause/resume/end、getWin/VisibleSize
2)可能有用的:popToRootScene、popToScenestackLevel、getRunningScene、purgeCachedData
3)其他的在基础运用中用到可能性较小,暂不细究
4)CC_PROPERTY定义的一些get、set方法看起来很有用的样子,先放着
三、总结 1、知道了项目的初始化(设置OpenGLVIEw、帧率、是否显示帧率等调试信息、第一个scene的加载)通过CCDirector来实现 2、知道了场景的切换(push/pop/replaceScene) 和控制(pause/resume/end)通过CCDirector来实现 3、知道了屏幕大小(getWin/VisibleSize)通过CCDirector来获取 4、因为一般情况下不会定义一个子类继承自CCDirector(除了这里的CCdisplaylinkDirector),所以除了纯虚函数外的init和getClasstypeInfo这两个虚函数意义不大
总结以上是内存溢出为你收集整理的《不靠谱2.x》002.CCDirector全部内容,希望文章能够帮你解决《不靠谱2.x》002.CCDirector所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)