coco2d-x 2.0学习系列(二):CCDirector
CCDirector?2d动画导演类
类结构
?
Cocos2d-x引擎除了提供了CCDirector,还提供了一个CCDisplayLinkDirector,CCDisplayLinkDirector是一个可以自动刷新的CCDdirector。
?
CCDirector?负责scenes之间的前进或后退。?
CCDirector是singleton模式的共享的对象。它知道当前哪个scene是激活。?CCDirector以stack的方式处理scenes的调用(当另一个scene进入的时候,暂停当前的scene,完成之后再返回原来的?scene),CCDirector?负责更换CCScene,在?CCLayer?被push的时候,更换或结束当前的scene。另外:CCDirector?负责初始化OpenGL?ES。
?
创建或更改场景(scenes)?
设置cocos2d的configuration细节?
获取视图(OpenGL,?UIView,?UIWindow)?
暂停,继续或结束游戏?
转换UIKit和OpenGL坐标?
获取CCDirector对象?
?
主要函数:
static?CCDirector?*?sharedDirector?(void)//?/**?类静态方法,获取全局唯一的CCDirector对象,如不存在则创建并获取对象*/
?
CCScene?*?getRunningScene?(void)?//获取当前运行场景
double?getAnimationInterval?(void)?//获取FPS值
virtual?void?setAnimationInterval?(double?dValue)=0?//设置FPS值
bool?isDisplayStats?(void)??//是否显示了FPS值
void?setDisplayStats?(bool?bDisplayStats)?//设置是否显示FPS值
float?getSecondsPerFrame();?????/**?获取每渲染一帧用的时间,单位秒?*/
CCEGLView?*?getOpenGLView?(void)//获取CCEGLView?
void?setOpenGLView?(CCEGLView?*pobOpenGLView)//设置OpenGLView
bool?isNextDeltaTimeZero(void);????/**?获取下次增量时间是否为零??*/
void?setNextDeltaTimeZero(bool?bNextDeltaTimeZero);????/**?设置下次增量时间是否为零?*/
bool?isPaused?(void)//当前是否适合暂停
unsigned?int?getTotalFrames(void);????/**?从CCDirector启动以来一共渲染了多少帧*/????
ccDirectorProjection?getProjection?(void)//获取?OpenGL?projection.?
?
void?setProjection?(ccDirectorProjection?kProjection)//设置//获取?OpenGL?projection.?
?
bool?isSendCleanupToScene?(void)
??/**?场景被替换时是否会接收到cleanup消息。若新场景是被push进来的,旧场景不会收到cleanup消息;若新场景是被替换进来的,旧场景将收到cleanup消息*/
?
CCNode?*?getNotificationNode?()
???/**?在主场景被visit之后将被访问的对象,这个对象必须可以执行visit?selector。经常用来挂载notification对象,如CCNotifications??*/
?
void?setNotificationNode?(CCNode?*node)
??/**?设置在主场景被visit之后将被访问的对象*/
CCDirectorDelegate?*?getDelegate?()?const
?CCDirector?delegate.?
?
void?setDelegate?(CCDirectorDelegate?*pDelegate)
?
CCSize?getWinSize?(void)
?/**?返回OpenGL?view的大小,单位为点*/
?
CCSize?getWinSizeInPixels?(void)
???/**?返回OpenGL?view的大小,单位为像素*/
?
CCSize?getVisibleSize?()
??/**?返回OpenGL?view可见区域的大小,单位为点。
?
CCPoint?getVisibleOrigin?()
?/**?返回OpenGL?view可见区域的原点,单位为点*/
?
CCPoint?convertToGL?(const?CCPoint?&obPoint)
????/**?将UIKit坐标转换为OpenGL坐标*/
?
CCPoint?convertToUI?(const?CCPoint?&obPoint)
?/**?将OpenGL坐标转换为UIKit坐标*/?
float?getZEye?(void)
?XXX:?missing?description.?
?
void?runWithScene?(CCScene?*pScene)
????/**?指定进入Director的主循环运行的场景。ps:仅在运行第一个场景时调用,如果已经存在运行中的场景,不能调用本方法。本方法调用后将调用pushScene方法,然后调用startAnimation*/
?
void?pushScene?(CCScene?*pScene)
????/**?将运行中的场景暂停,并push到场景堆栈中,新的场景将被执行。仅当已存在一个运行中的场景时本方法可被调用*/?
void?popScene?(void)
????/**?从场景堆栈中pop出一个场景,此场景将替换现在正运行的场景,而运行中的场景将被删除。如果场景堆栈中没有可pop的场景,执行将终止。仅当已存在一个运行中的场景时本方法可被调用*/
?
void?popToRootScene?(void)
??/**?从场景堆栈中pop出除根场景外的所有场景,pop出的场景将替换现在正运行的场景,而运行中的场景将被删除。如果场景堆栈中没有可pop的场景,执行将终止。仅当已存在一个运行中的场景时本方法可被调用*/?
?
void?replaceScene?(CCScene?*pScene)
???/**?使用新场景替换当前场景,当前场景将终止,仅在存在当前场景时可调用*/
?
void?end?(void)
????/**?终止执行,释放运行中的场景,需要手动移除OpenGL?view*/
?
void?pause?(void)
?**?暂停运行中的场景。场景仍然被渲染,当所有定时器将被暂停,同时为了减少CPU消耗,暂停时FPS将降至每秒4帧*/
?
void?resume?(void)
???/**?恢复被暂停的场景,定时器被重新激活,delta?time将为0(好像游戏未被暂停一般)*/?
virtual?void?stopAnimation?(void)=0
?/**?停止动画。将停止渲染,主循环停止。如不想停止动画渲染,使用pause方法*/
?
virtual?void?startAnimation?(void)=0
?/**?主循环再次被触发,在调用stopAnimation后才能调用此方法。初次启动主循环不能使用本方法,而是应调用runWithScene方法*/?
void?drawScene?(void)
?/**?绘制场景,每帧都会调用此方法。不要手动调用此方法*/
?
void?purgeCachedData?(void)
???/**?删除缓存数据。包括CCTextureCache、CCSpriteFrameCache、CCLabelBMFont缓存数据*/
?
void?setGLDefaultValues?(void)
/**?设置OpenGL的默认值*/?
void?setAlphaBlending?(bool?bOn)
??/**?设置是否启用OpenGL的alpha通道*/
?
void?setDepthTest?(bool?bOn)
???/**?设置是否测试OpenGL景深*/?
virtual?void?mainLoop?(void)=0
?
void?setContentScaleFactor?(float?scaleFactor)
?/**?设置surface的大小,单位为像素。可能和屏幕大小不一样。如High-res设备可能surface大小大于屏幕大小。仅在使用4.0以上SDK编译时有效。*/
?
float?getContentScaleFactor?(void)
??/**?获取surface的大小,单位为像素*/
virtual?CCScheduler?*?getScheduler?(void)
?getScheduler?
?
virtual?void?setScheduler?(CCScheduler?*var)
?setScheduler?
?
virtual?CCActionManager?*?getActionManager?(void)
?getActionManager?
?
virtual?void?setActionManager?(CCActionManager?*var)
?setActionManager?
?
virtual?CCTouchDispatcher?*?getTouchDispatcher?(void)
?getTouchDispatcher?
?
virtual?void?setTouchDispatcher?(CCTouchDispatcher?*var)
?setTouchDispatcher?
?
virtual?CCKeypadDispatcher?*?getKeypadDispatcher?(void)
?getKeypadDispatcher?
?
virtual?void?setKeypadDispatcher?(CCKeypadDispatcher?*var)
?setKeypadDispatcher?
?
virtual?CCAccelerometer?*?getAccelerometer?(void)
?getAccelerometer?
?
virtual?void?setAccelerometer?(CCAccelerometer?*var)
?Public?Member?Functions?inherited?from?CCCopying
?