首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

coco2d-x 2.0学习系列(2):CCDirector

2013-03-01 
coco2d-x 2.0学习系列(二):CCDirectorCCDirector?2d动画导演类类结构?Cocos2d-x引擎除了提供了CCDirector,

coco2d-x 2.0学习系列(二):CCDirector
CCDirector?2d动画导演类

类结构


coco2d-x 2.0学习系列(2):CCDirector
?

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

?

热点排行