CCDirector 2d动画导演类里的方法

2024-08-27 04:32

本文主要是介绍CCDirector 2d动画导演类里的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

CCDirector 2d动画导演类

类结构



 

Cocos2d-x引擎除了提供了CCDirector,还提供了一个CCDisplayLinkDirectorCCDisplayLinkDirector是一个可以自动刷新的CCDdirector

 

CCDirector 负责scenes之间的前进或后退。 

CCDirectorsingleton模式的共享的对象。它知道当前哪个scene是激活。 CCDirectorstack的方式处理scenes的调用(当另一个scene进入的时候,暂停当前的scene,完成之后再返回原来的 scene),CCDirector 负责更换CCScene,在 CCLayer push的时候,更换或结束当前的scene。另外:CCDirector 负责初始化OpenGL ES

 

创建或更改场景(scenes) 

设置cocos2dconfiguration细节 

获取视图(OpenGL, UIView, UIWindow) 

暂停,继续或结束游戏 

转换UIKitOpenGL坐标 

获取CCDirector对象 

 

主要函数:

static CCDirector * sharedDirector (void)// /** 类静态方法,获取全局唯一的CCDirector对象,如不存在则创建并获取对象*/

 

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

double getAnimationInterval (void) //获取FPS

virtual void setAnimationInterval (double dValue)=0 //设置FPS

bool isDisplayStats (void)  //是否显示了FPS

void setDisplayStats (bool bDisplayStats) //设置是否显示FPS

float getSecondsPerFrame();     /** 获取每渲染一帧用的时间,单位秒 */

CCEGLView * getOpenGLView (void)//获取CCEGLView 

void setOpenGLView (CCEGLView *pobOpenGLView)//设置OpenGLView

bool isNextDeltaTimeZero(void);    /** 获取下次增量时间是否为零? */

void setNextDeltaTimeZero(bool bNextDeltaTimeZero);    /** 设置下次增量时间是否为零 */

bool isPaused (void)//当前是否适合暂停

unsigned int getTotalFrames(void);    /** CCDirector启动以来一共渲染了多少帧*/    

ccDirectorProjection getProjection (void)//获取 OpenGL projection. 

 

void setProjection (ccDirectorProjection kProjection)//设置//获取 OpenGL projection. 

 

bool isSendCleanupToScene (void)

  /** 场景被替换时是否会接收到cleanup消息。若新场景是被push进来的,旧场景不会收到cleanup消息;若新场景是被替换进来的,旧场景将收到cleanup消息*/

 

CCNode * getNotificationNode ()

   /** 在主场景被visit之后将被访问的对象,这个对象必须可以执行visit selector。经常用来挂载notification对象,如CCNotifications  */

 

void setNotificationNode (CCNode *node)

  /** 设置在主场景被visit之后将被访问的对象*/

CCDirectorDelegate * getDelegate () const

 CCDirector delegate. 

 

void setDelegate (CCDirectorDelegate *pDelegate)

 

CCSize getWinSize (void)

 /** 返回OpenGL view的大小,单位为点*/

 

CCSize getWinSizeInPixels (void)

   /** 返回OpenGL view的大小,单位为像素*/

 

CCSize getVisibleSize ()

  /** 返回OpenGL view可见区域的大小,单位为点。

 

CCPoint getVisibleOrigin ()

 /** 返回OpenGL view可见区域的原点,单位为点*/

 

CCPoint convertToGL (const CCPoint &obPoint)

    /** UIKit坐标转换为OpenGL坐标*/

 

CCPoint convertToUI (const CCPoint &obPoint)

 /** OpenGL坐标转换为UIKit坐标*/ 

float getZEye (void)

 XXX: missing description. 

 

void runWithScene (CCScene *pScene)

    /** 指定进入Director的主循环运行的场景。ps:仅在运行第一个场景时调用,如果已经存在运行中的场景,不能调用本方法。本方法调用后将调用pushScene方法,然后调用startAnimation*/

 

void pushScene (CCScene *pScene)

    /** 将运行中的场景暂停,并push到场景堆栈中,新的场景将被执行。仅当已存在一个运行中的场景时本方法可被调用*/ 

void popScene (void)

    /** 从场景堆栈中pop出一个场景,此场景将替换现在正运行的场景,而运行中的场景将被删除。如果场景堆栈中没有可pop的场景,执行将终止。仅当已存在一个运行中的场景时本方法可被调用*/

 

void popToRootScene (void)

  /** 从场景堆栈中pop出除根场景外的所有场景,pop出的场景将替换现在正运行的场景,而运行中的场景将被删除。如果场景堆栈中没有可pop的场景,执行将终止。仅当已存在一个运行中的场景时本方法可被调用*/ 

 

void replaceScene (CCScene *pScene)

   /** 使用新场景替换当前场景,当前场景将终止,仅在存在当前场景时可调用*/

 

void end (void)

    /** 终止执行,释放运行中的场景,需要手动移除OpenGL view*/

 

void pause (void)

 ** 暂停运行中的场景。场景仍然被渲染,当所有定时器将被暂停,同时为了减少CPU消耗,暂停时FPS将降至每秒4*/

 

void resume (void)

   /** 恢复被暂停的场景,定时器被重新激活,delta time将为0(好像游戏未被暂停一般)*/ 

virtual void stopAnimation (void)=0

 /** 停止动画。将停止渲染,主循环停止。如不想停止动画渲染,使用pause方法*/

 

virtual void startAnimation (void)=0

 /** 主循环再次被触发,在调用stopAnimation后才能调用此方法。初次启动主循环不能使用本方法,而是应调用runWithScene方法*/ 

void drawScene (void)

 /** 绘制场景,每帧都会调用此方法。不要手动调用此方法*/

 

void purgeCachedData (void)

   /** 删除缓存数据。包括CCTextureCacheCCSpriteFrameCacheCCLabelBMFont缓存数据*/

 

void setGLDefaultValues (void)

/** 设置OpenGL的默认值*/ 

void setAlphaBlending (bool bOn)

  /** 设置是否启用OpenGLalpha通道*/

 

void setDepthTest (bool bOn)

   /** 设置是否测试OpenGL景深*/ 

virtual void mainLoop (void)=0

 

void setContentScaleFactor (float scaleFactor)

 /** 设置surface的大小,单位为像素。可能和屏幕大小不一样。如High-res设备可能surface大小大于屏幕大小。仅在使用4.0以上SDK编译时有效。*/

 

float getContentScaleFactor (void)

  /** 获取surface的大小,单位为像素*/

virtual CCScheduler * getScheduler (void)

 getScheduler 

 

virtual void setScheduler (CCScheduler *var)

 setScheduler 

 

virtual CCActionManager * getActionManager (void)

 getActionManager 

 

virtual void setActionManager (CCActionManager *var)

 setActionManager 

 

virtual CCTouchDispatcher * getTouchDispatcher (void)

 getTouchDispatcher 

 

virtual void setTouchDispatcher (CCTouchDispatcher *var)

 setTouchDispatcher 

 

virtual CCKeypadDispatcher * getKeypadDispatcher (void)

 getKeypadDispatcher 

 

virtual void setKeypadDispatcher (CCKeypadDispatcher *var)

 setKeypadDispatcher 

 

virtual CCAccelerometer * getAccelerometer (void)

 getAccelerometer 

 

virtual void setAccelerometer (CCAccelerometer *var)

 Public Member Functions inherited from CCCopying

这篇关于CCDirector 2d动画导演类里的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1110639

相关文章

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函