Cocos2d-x 导演类CCDirector

Cocos2d-x 导演类CCDirector

导演类也是一个单例,有两大作用
一是设置主窗口的显示属性(比如垂直或水平、是否显示FPS)
二是管理、显示场景。

之前提到过,场景是树的根节点,一个游戏可以同时存在多个树,但被激活的只能有一个
导演类的实现方法是:将所有树的根节点(即场景对象)保存在一个堆栈中(array),最后进栈的就是当前激活的场景,当需要切换场景时,导演通过进栈、出栈或替换的方式实现

方法

CCDirector* sharedDirector(void);
获取当前的CCDirector唯一实例

float getAnimationInterval()
获取FPS(Frames Per Second)值

-(void) setAnimationInterval(double dValue);
获取FPS(Frames Per Second)值

unsigned int getTotalFrames(void);
Director开始后调用了多少帧

bool isDisplayStats(void);
是否在屏幕底部显示FPS

-(void) setDisplayStats(bool bDisplayStats);
设置在屏幕底部显示FPS

GLView* getOpenGLView(void)
获取CCEGLView,当一切条件提供

-(void) setOpenGLView(GLView *openGLView);
设置CCEGLView

bool isPaused(void);
是否暂停

Projection getProjection(void)
获取OpenGL的Projection

-(void) setProjection(Projection projection);
设置OpenGL的Projection

-(void) setViewport();
设置OpenGL的Viewport

bool isSendCleanupToScene()
场景替换时是否接收到Cleanup事件
若新场景是push进来的,旧场景不会接收到Cleanup事件
若新场景是replace进来的,旧场景会接收到Cleanup事件

CCSize getWinSize(void);
获取OpenGL View的大小 单位为点

CCSize getWinSizeInPixels(void);
获取OpenGL View的大小 单位为像素

CCSize getVisibleSize();
获取OpenGL View显示区域大小 单位为点
如果没调用CCEGLView::setDesignResolutionSize()则值和getWinSize相等

CCPoint getVisibleOrigin();
获取OpenGL View显示区域大小 单位为点

CCPoint convertToGL(const CCPoint& obPoint);
将UIKit坐标体系转换成OpenGL坐标体系

CCPoint convertToUI(const CCPoint& obPoint);
将OpenGL坐标体系转换成UIKit坐标体系

-(void) runWithScene: (CCScene*)scene
将场景对象压入栈中,并激活(此时不能有已经激活的场景,因此该方法常用于刚进游戏时)。

-(void) replaceScene: (CCScene*)scene
替换当前激活的场景,同时将旧场景从堆栈中删除,新场景压入堆栈。

-(void) pushScene: (CCScene*) scene
添加新的场景进栈,并将其激活。

-(void) popScene
当前激活的场景出栈,激活上一个场景。

-(void) popToRootScene(void);
从堆栈中弹出所有场景,直到到队列中的根场景。这个场景将代替正在进行的场景

-(void) pause(void);
暂停场景

-(void) resume(void);
恢复暂停的场景

-(void) stopAnimation(void);
停止动画

-(void) startAnimation(void);
开始动画

-(void) drawScene(void);
渲染、绘制场景

-(void) purgeCachedData(void);
删除缓存的数据

-(void) setGLDefaultValues(void);
设置OpenGL的默认值

-(void) setAlphaBlending(bool bOn);
设置是否启动OpenGl的alpha通道

-(void) setDepthTest(bool bOn);
设置是否测试景深

你可能感兴趣的:(Cocos2d-x 导演类CCDirector)