cocos2d-x学习笔记10:动作3:补间动作

简介:

cocos2d-x学习笔记10:动作3:补间动作


第一部分:CCActionEase家族(补间动作)

补间动作也是一个包装器(之前叫补间动画,从字面上讲,叫动作更合适一些。)。你也可以叫他缓释动作。

1.含义
补间动作改变的是,内部动作的执行速率(注意,并没有改变执行的最终效果,和执行的时间。)关于这个含义,我们用图表表示,横轴表示时间,纵轴表示位移。

假设我们有一个动作,4秒内按(100,100)的增量进行移动

 
 
  1. CCMoveBy::actionWithDuration(4.0f, ccp(100,100)); 
假设我们的机器比较操蛋,一秒一帧(用绿线切割)。假设初始节点在(0,0)点,那么这四秒移动的点位置分别是(25,25)(50,50)(75,75)(100,100)。
他的位移时间关系就是图上的蓝线,从图上可以清晰看出,移动是按照匀速速率进行的。

现在我们使用CCEaseSineInOut做包装器,包装这个动作:

 
 
  1. CCEaseSineOut::actionWithAction(CCMoveBy::actionWithDuration(4.0f, ccp(100,100))); 
他的位移时间关系变成图上的红线,从图上可以清晰看出,移动是非匀速速率进行的,先慢后快。那么被绿线截取的位移点的位置,也会发生变化。

从这个图可以看出,使用补间动作,并没有改变位移和时间,但是改变了动作的执行速率,从匀速执行变为非匀速执行。

2.原理
通过包装器,每一个补间动画,都改变了内部动作的执行速率,这是通过封装代理update函数完成的,例如前面的CCEaseSineOut。

 
 
  1. void CCEaseSineOut::update(ccTime time) 
  2.             m_pOther->update(sinf(time * (float)M_PI_2)); 

3.后缀解释
补间动作有三种后缀:
In:表示动作执行先快后慢
Out:表示动作执行先慢后快
InOut:表示动作执行快-慢-快

第二部分:使用补间动作

不同的补间动画有不同的ST图。可以在这里查看和运行效果

你可能觉得这种执行方式很奇怪。但这样可以做出很不错的效果,比你自己手动调整要快的多,因为这些曲线都是来自于数学计算,而这些数学公式,都是从实际的物体运行中总结出来的。

使用举例:比如你要做一个皮球落地的动作,就可以用CCEaseBounceOut。具体效果你可以用上面的地址运行一下。

 
第三部分:CCSpeed

CCSpeed也是一个包装器,区别于补间动作,他是真正可以改变内部动作执行时间(Duration)的。

 
 
  1. CCActionInterval *move = CCMoveBy::actionWithDuration(3,ccp(350,0)); 
  2. CCSpeed *speed= CCSpeed::actionWithAction(move,2.0f);   // 调整为2倍速运行 
使用举例:这个动作经常用来做慢镜头和快进。



 本文转自 老G 51CTO博客,原文链接:http://blog.51cto.com/goldlion/763464 ,如需转载请自行联系原作者
相关文章
|
存储 JSON JavaScript
Python字典和JSON字符串相互转化方法
【2月更文挑战第18天】
627 3
|
10月前
|
机器学习/深度学习 人工智能 运维
运维不靠玄学!用AI预测系统负载,谁用谁说香!
运维不靠玄学!用AI预测系统负载,谁用谁说香!
391 18
|
Java Maven 开发者
Maven的依赖作用域和依赖传递
Maven的依赖作用域和依赖传递
1175 0
Maven的依赖作用域和依赖传递
|
关系型数据库 MySQL 数据库
探究数据库开源协议:PostgreSQL vs MySQL
探究数据库开源协议:PostgreSQL vs MySQL
|
开发框架 前端开发 C#
从零开始学 Blazor 创建 Web 应用,入门指南超详细!带你轻松开启精彩的开发之旅!
【8月更文挑战第31天】在互联网时代,Web应用开发愈发重要,Blazor作为新兴框架,允许使用C#和.NET技术构建交互式Web应用,提高开发效率与代码可维护性。本文将从零开始引导读者了解Blazor的基本概念,安装设置步骤,项目创建及运行方法。通过简单的示例介绍Blazor的基本结构,包括Pages、Shared等文件夹用途,以及Program.cs文件的功能。同时,还将演示如何创建Razor页面和组件,实现数据绑定与事件处理,帮助读者快速入门Blazor开发。
2029 0
|
敏捷开发 监控 测试技术
持续集成与部署(一):CI/CD简介
持续集成与部署(一):CI/CD简介
持续集成与部署(一):CI/CD简介
|
SQL 存储 关系型数据库
聊聊sql优化的15个小技巧
聊聊sql优化的15个小技巧
聊聊sql优化的15个小技巧
【Multisim 14.0】信号发生器和示波器的使用---方波、三角波、正弦波
【Multisim 14.0】信号发生器和示波器的使用---方波、三角波、正弦波
4414 0
|
机器学习/深度学习 数据采集 人工智能
从BERT到ChatGPT,北航等9大顶尖研究机构全面综述:那些年一起追过的「预训练基础模型」
从BERT到ChatGPT,北航等9大顶尖研究机构全面综述:那些年一起追过的「预训练基础模型」
439 0
|
移动开发 安全 JavaScript
一道面试题牵出12个前端硬核知识点,你知道几个?(上)
一道面试题牵出12个前端硬核知识点,你知道几个?(上)
一道面试题牵出12个前端硬核知识点,你知道几个?(上)

热门文章

最新文章