[cocos2d-x] --- CCDirector类详解

前端之家收集整理的这篇文章主要介绍了[cocos2d-x] --- CCDirector类详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

转自: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引擎中,CCDirectorCCDisplayLinkDirector类图如下(刚开始学这个工具,大概列举了下,画得不标准)

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

  1. //获取当前的CCDirector唯一实例
  2. CCDirector*sharedDirector(void);
?
    //获取当前运行的场景
  1. CCScene*getRunningScene(void);
  2. //获取FPS(FramesPerSecond)值
  3. doublegetAnimationInterval(void);
  4. //设置FPS值
  5. voidsetAnimationInterval(doubledValue);
  6. //是否在屏幕底部显示FPS
  7. boolisDisplayStats(//设置在屏幕底部显示FPS
  8. voidsetDisplayStats(boolbDisplayStats);
  9. //获取每秒的帧
  10. floatgetSecondsPerFrame();
  11. //获取CCEGLView,当一切条件提供
  12. CCEGLView*getOpenGLView(//设置CCEGLView
  13. voidsetOpenGLView(CCEGLView*pobOpenGLView);
  14. //是否暂停
  15. boolisPaused(//Director开始后调用了多少帧
  16. unsignedintgetTotalFrames(//获取OpenGL的Projection
  17. ccDirectorProjectiongetProjection(//设置OpenGL的Projection
  18. voidsetProjection(ccDirectorProjectionkProjection);
  19. //设置OpenGL的Viewport
  20. voidsetViewport();
  21. //场景替换时是否接收到Cleanup事件
  22. //若新场景是push进来的,旧场景不会接收到Cleanup事件
  23. //若新场景是replace进来的,旧场景会接收到Cleanup事件
  24. boolisSendCleanupToScene(//获取OpenGLView的大小单位为点
  25. CCSizegetWinSize(//获取OpenGLView的大小单位为像素
  26. CCSizegetWinSizeInPixels(//获取OpenGLView显示区域大小单位为点
  27. //如果没调用CCEGLView::setDesignResolutionSize()则值和getWinSize相等
  28. CCSizegetVisibleSize();
  29. CCPointgetVisibleOrigin();
  30. //将UIKit坐标体系转换成OpenGL坐标体系
  31. CCPointconvertToGL(constCCPoint&obPoint);
  32. //将OpenGL坐标体系转换成UIKit坐标体系
  33. CCPointconvertToUI(constCCPoint&obPoint);
?
?
    //运行场景只用在运行第一个场景
?
    //调用pushScene之后调用startAnimation
  1. voidrunWithScene(CCScene*pScene);
  2. //push场景只用在有场景运行时替换成新的场景
  3. voidpushScene(CCScene*pScene);
  4. //pop场景换删除原来场景替换成新场景
  5. voidpopScene(?
      //从queue中pop所以场景
    1. voidpopToRootScene(//替换场景只用在有场景运行时
    2. voidreplaceScene(CCScene*pScene);
    3. //暂停场景
    4. voidpause(//恢复暂停的场景
    5. voidresume(//停止动画
    6. voidstopAnimation(//开始动画
    7. voidstartAnimation(//渲染、绘制场景
    8. voiddrawScene(//删除缓存的数据
    9. voidpurgeCachedData(//设置OpenGL的默认值
    10. voidsetGLDefaultValues(//设置是否启动OpenGl的alpha通道
    11. voidsetAlphaBlending(boolbOn);
    12. //设置是否测试景深
    13. voidsetDepthTest(boolbOn);

    猜你在找的Cocos2d-x相关文章