Cocos2d-x学习交流群:140326755
Email : [email protected]
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);