Cocos2d-x 学习笔记(13) ActionEase
ActionEase是ActionInterval的子类,能够变速执行动作。把内部动作进行了包装,通过传进update的time,加上不同的计算公式,算出新的time,作为内部动作的time,实现了内部动作变速。
用3种宏定义的方式对每个缓冲动作类进行定义:
EASE_TEMPLATE_IMPL(CLASSNAME, TWEEN_FUNC, REVERSE_CLASSNAME)
3个参数:类名,update调用的函数,反向执行的类名。
定义的方法:create、update、clone、reserve(执行参数中反向类的create方法)。
定义了:指数缓冲、Sine缓冲、跳跃缓冲、回震缓冲……
EASERATE_TEMPLATE_IMPL(CLASSNAME, TWEEN_FUNC)
2个参数:类名,update调用的函数
定义了:EaseIn/Out/InOut。create方法包括参数float rate,赋值给_rate。
EASEELASTIC_TEMPLATE_IMPL(CLASSNAME, TWEEN_FUNC, REVERSE_CLASSNAME)
定义了:EaseElasticIn/Out/InOut。create方法包括参数float period,赋值给_period。
函数TWEEN_FUNC通过缓冲的time计算出新time,作为内部action的update的参数time。
函数图像的横轴是包装类的time,随时间均匀增加,竖轴是传给内部动作update的time。斜率可以看做是内部动作运行的速率,斜率小于1,比正常速度慢,大于1,比正常速度快。
1. 指数缓冲 EaseExponential
EaseExponentialIn先慢后快,对应的tweenfunc方法:


EaseExponentialOut先快后慢,tweenfunc:


EaseExponentialInOut缓冲进度以0.5为界,分两种情况,呈现的效果是先慢后快再慢。
if(time == || time == )
return time; if (time < 0.5f)
return 0.5f * powf(, * (time * - )); return 0.5f * (-powf(, - * (time * - )) + );
2. EaseSine
Out:

In:

InOut:

3. EaseBounce
4. EaseBack
5. EaseQuadraticAction 2次函数
Out:

In:

InOut

6. EaseQuarticAction 4次函数
In/Out:

InOut:

7. EaseQuinticActionIn 5次函数
In/Out:

InOut:

8. EaseCircleAction 圆函数
In/Out:

InOut:

9. EaseCubicAction 3次函数
In/Out:

InOut:

10. Ease
create需要传入参数rate,作为tweenfunc计算时的次方数。
对于In:rate>1时,rate越大, 慢速时间越长越慢,加速越晚越快。0<rate<1时,rate越小,加速越早越快,慢速时间越长越慢。
对于Out:rate>1时,rate越大,加速越早越快,慢速时间越长越慢。0<rate<1时,rate越小,慢速时间越长越慢,加速越晚越快。0
对于InOut:rate>1时越大,越靠近0.5时间进度时加速,加速越快时间越短。1/2
11. EaseElastic
create参数period越接近0,弹性效果越明显。为0消失。

Cocos2d-x 学习笔记(13) ActionEase的更多相关文章
- Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法
Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法 这篇笔记将介绍如何使用Ext.Net GridPanel 中使用Sorter. 默认情况下,Ext.Net GridP ...
- SQL反模式学习笔记13 使用索引
目标:优化性能 改善性能最好的技术就是在数据库中合理地使用索引. 索引也是数据结构,它能使数据库将指定列中的某个值快速定位在相应的行. 反模式:无规划的使用索引 1.不使用索引或索引不足 2.使用了 ...
- golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换
golang学习笔记13 Golang 类型转换整理 go语言string.int.int64.float64.complex 互相转换 #string到intint,err:=strconv.Ato ...
- springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定
springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...
- Python3+Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)'''from sel ...
- 并发编程学习笔记(13)----ConcurrentLinkedQueue(非阻塞队列)和BlockingQueue(阻塞队列)原理
· 在并发编程中,我们有时候会需要使用到线程安全的队列,而在Java中如果我们需要实现队列可以有两种方式,一种是阻塞式队列.另一种是非阻塞式的队列,阻塞式队列采用锁来实现,而非阻塞式队列则是采用cas ...
- python 学习笔记 13 -- 经常使用的时间模块之time
Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: * time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...
- MiZ702学习笔记13——ZYNQ通过AXI-Lite与PL交互
在<MiZ702学习笔记7——尝试自制带总线IP>,我曾提到了AXI4-Lite的简单用法,驱动了下流水灯,只涉及到了写总线.今天,我想利用之前的VGA模块,将AXI4-Lite的读写都应 ...
- 【干货】Html与CSS入门学习笔记1-3
从23号开始用了4天时间看完了<Head First Html与CSS>这本书,本书讲解方式深入浅出,便于理解,结合习题,便于记忆,是一本不错的入门书.下面是本书的学习笔记: 一.认识HT ...
随机推荐
- 学习数据库SQL语句1
数据库一直让我很头大,正好出差有空,就重新恶补起来吧!(网站:http://www.w3school.com.cn/sql) 我准备把我每天学到的都记录下来=.= (红色字体代表关键词,蓝色字体是我个 ...
- nodejs实现聊天机器人
技术栈 服务端: koa.koa-route.koa-websocket.request. 客户端: html.css.js.websocket. 远程聊天API: http://api.qingyu ...
- 搜索专题题解(FJUT - OJ 17级搜索强化训练)
题目连接:http://120.78.128.11/Contest.jsp?cid=221#H 题目都比较难,每道题都很经典,我也做的很慢,这篇博文算是个收录.具体题目题解点击下面超链接吧. 一.Br ...
- PTA A1001&A1002
从今天起每天刷1-2题PAT甲级 第一天 A1001 A+B Format (20 分) 题目内容 Calculate a+b and output the sum in standard forma ...
- 面试官: 聊一聊Babel
点击关注本公众号获取文档最新更新,并可以领取配套于本指南的 <前端面试手册> 以及最标准的简历模板. 前言 Babel 是现代 JavaScript 语法转换器,几乎在任何现代前端项目中都 ...
- Mybaits-从零开始-Hello World(暂不考虑命名规范化)
1.mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...
- Shell之文本排序命令
目录 Shell之文本排序命令 参考 wc命令 sort命令 uniq命令 Shell之文本排序命令
- yii2 qq邮箱配置发送
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'useFileTransport' =>false,//这句一定有,false ...
- yii2 对字段 自动加一 或 减一
用于数字类型,将值进行 累加 或者 累减 $count = 1, 就是加一 . $count = -1, 就是减一 . $effect = Model::updateAllCounters( [ ...
- Flutter 的基本控件
文本控件 Text 支持两种类型的文本展示,一个是默认的展示单一样式文本 Text,另一个是支持多种混合样式的富文本 Text.rich. 单一样式文本 Text 单一样式文本 Text 的初始化,是 ...