支持HW团队,就支付宝领取下面的红包吧!(2018年3月31前,就几毛,也会几块,可以和其他红包叠加使用),你领取消费,HW有奖励。红包使用无条件限制,有条件请注意是不是有病毒。

小伙伴们,给大家发红包喽!人人可领,领完就能用。祝大家领取的红包金额大大大!#吱口令#长按复制此消息,打开支付宝就能领取!er1OEj73Uj

登入 注册 | 验证
| 搜索
HelloWorld论坛 : > 计算机科学、技术、教学> 编程专题> 开源免费项目> [转][cocos2d-x] --- CCDirector类详解
 
 
 
 
类别:Cocos2dx教程 阅读:2171 评论:0 时间:一月 18, 2017, 11:28 p.m. 关键字:cocos2d-x

 

来源:http://blog.csdn.net/qiurisuixiang/article/details/8761191

1 CCDirecor(导演)在cocos2d-x引擎中是一个很重要的类,CCDirector使用单例模式实现,所以整个游戏中只有一个导演。CCDirector在整个游戏中扮演很重要的角色:(1)在开始游戏和结束游戏时负责游戏的初始化和销毁工作。(2)管理游戏的关卡,即场景。负责各个场景之间的切换。(3)设置、获取系统信息,比如调整OpenGL相关的设置,获取屏幕的大小等

2 cocos2d-x除了提供CCDirector,还提供一个了一个CCDisplayLinkDirector(一个可以自动刷新的CCDirector)。在cocos2d-x引擎中,CCDirector和CCDisplayLinkDirector类图如下(刚开始学这个工具,大概列举了下,画得不标准)


3 CCDirector是一个单例类,CCDirector类中主要方法解释

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

//获取当前运行的场景
CCScene* getRunningScene(void);

//获取FPS(Frames Per Second)值
double getAnimationInterval(void);
//设置FPS值
void setAnimationInterval(double dValue);

//是否在屏幕底部显示FPS
bool isDisplayStats(void);
//设置在屏幕底部显示FPS
void setDisplayStats(bool bDisplayStats);

//获取每秒的帧
float getSecondsPerFrame();

//获取CCEGLView,当一切条件提供
CCEGLView* getOpenGLView(void);
//设置CCEGLView
void setOpenGLView(CCEGLView *pobOpenGLView);

//是否暂停
bool isPaused(void);

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

//获取OpenGL的Projection
ccDirectorProjection getProjection(void);
//设置OpenGL的Projection
void setProjection(ccDirectorProjection kProjection);

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


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

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

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

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

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

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

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

//运行场景 只用在运行第一个场景

//调用pushScene之后调用startAnimation
void runWithScene(CCScene *pScene);

//push场景 只用在有场景运行时替换成新的场景
void pushScene(CCScene *pScene);

//pop场景 换删除原来场景 替换成新场景
void popScene(void);

//从queue中pop所以场景
void popToRootScene(void);

//替换场景 只用在有场景运行时
void replaceScene(CCScene *pScene);

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

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

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

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

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

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

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

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

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


 

[挂载人]初学MPEG

个人签名--------------------------------------------------------------------------------

Please Login (or Sign Up) to leave a comment