美文网首页
Cocos2d-x 导演类CCDirector

Cocos2d-x 导演类CCDirector

作者: 白小白152 | 来源:发表于2020-11-13 09:57 被阅读0次

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

    Cocos2d-x 导演类CCDirector 导演类也是一个单例,有两大作用,一是设置主窗口的显示属性(比如垂直...

  • cocos

    CCDirector: 导演,负责场景的切换以及场景的信息。如宽度,高度,旋转场景内容。 CCScene: 场景....

  • Cocos2d-x简单介绍

    Director(导演)控制、管理 Director 控制着整个游戏,在Cocos2d-x 3.x中,Direct...

  • Cocos2d-x 内存管理基本原理(引用计数)

    Cocos2d-x 使用的是引用计数的方式来实现C++的内存回收,Cocos2d-x 引用计数的基类是Ref。 P...

  • cocos2d 网格动作

    Cocos2d-x 提供了很多特效,这些特效事实上属于间隔动作。特效类GridAction类也称为网格动作。 Gr...

  • cocos --notification center

    本文参考Cocos2d-x CCNotificationCenter 通知中心 使用意义 在不同的类之间传递参数,...

  • Sprite变灰

    Cocos2d-x版本3.17.1 原理 Sprite类默认使用的着色器程序为: GLProgram::SHADE...

  • Cocos2d-x-02 :核心概念

    作者:慧科集团华东校区-朱家聪老师,转载请注明出处及本链接。 导演,场景,层,精灵,菜单 在Cocos2d-x中,...

  • cocos-Lua基础概念

    导演 导演类 cc.Director 节点 节点类 cc.Node 场景 场景类 cc.Scene 1、创建...

  • 'stack' file not found 问题分析和解决方法

    在项目中遇到直接崩溃在CCDirector.h 系统文件,报错如下 'stack' file not found ...

网友评论

      本文标题:Cocos2d-x 导演类CCDirector

      本文链接:https://www.haomeiwen.com/subject/injpbktx.html