Tween动画及缓动函数

2023-12-23 00:30
文章标签 函数 动画 缓动 tween

本文主要是介绍Tween动画及缓动函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

缓动tween结构很简单,它是基于初始值,结束值,作用域公式来实现的。
缓动函数包括quad、cubic、sine、quint、circt、bounce、back、expo、elastic、quart等等
转载自:https://www.jianshu.com/p/c157c5898153 Zszen

参考egret使用缓动Tween实现类似抛物线的效果


图示

下图所示,所有公式的作用域都是从0~1
在这里插入图片描述

简介

  • 首先说一下一般引擎下的tween都比较类似,这也是游戏开发熟悉一个新平台的老朋友最好的接触点。
  • 有些tween有linear公式,像egret只要不填,就是线性,也就是从0~1连接的直线。
  • 其他公式简单聊一下:
    sine公式其实就是用到了它的1/4波形,inOut是将两个波形叠加在一起。Cubic是取三次方,其他的有取四次方,五次方的公式。
    • in 越来越快,开始很缓慢,结束很突然
    • out 越来越慢,开始很突然,结束很缓慢
    • inOut 先快后慢,两端速度都趋近0,过程中达到最大值

公式分类

  • 匀速 linear 用于匀速运动,开始和结束都比较突然,适用于游戏中卷轴类匀速运动,颜色,透明度过渡等。
  • cubic等缓慢公式,用于慢慢展现或者慢慢靠近结束,大部分物体运动都可以用这种效果来做
  • back 缓冲恢复,视觉冲击力会比缓慢公式好一点,但是全局用就有点唐突,个人觉得把back公式加在需要着重展示的动画里面比较好,比如获得道具,消除奖励等。
  • elastic 果冻效果,比back效果更强一些,会多抖动几次。
  • bounce 模拟小球落地,最简单模拟东西落地的弹性效果,虽然也假了点,贵在简单易用。
  • 瞬间处理函数,用于直接将对象的值设置为制定的值,或者响应特定的函数和方法等都属于这一类。
  • 你可以自己写公式,但现有的已经足够用了。

延迟

  • tween一般都包含delay/wait函数用于延迟动作的继续执行。

事件响应

  • 更新事件,每次对象的值更新后会调用的函数,一般为update
  • 某个时间点激活指定函数,可以像动作组合一样放到任何位置,它可能刚开始运行缓动就被调用,或者结束前被调用,这取决于你的调配,一般为callback。
  • 完成事件,当对象的缓动组合执行结束后调用,一般为complete

参考

  • 更多的缓动教学以及各个平台对应的缓动引擎可以在下方了解:
    • unity平台 dotween
      http://dotween.demigiant.com
    • greensocks 非常专业的js缓动,支持时间线模式
      https://greensock.com
    • cocos2dx引擎内建
      http://www.cocos2d-x.org/reference/native-cpp/V3.3/d4/d0d/classcocostudio_1_1_tween.html
    • egret js内建
      http://developer.egret.com/cn/apidoc/index/name/egret.Tween
    • laya js内建
      https://layaair.ldc.layabox.com/api/laya/utils/Tween.html
    • c++ 第三方tween
      https://github.com/sasq64/tween
    • tween 维基百科
      https://en.wiktionary.org/wiki/tween

这篇关于Tween动画及缓动函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/526056

相关文章

golang panic 函数用法示例详解

《golangpanic函数用法示例详解》在Go语言中,panic用于触发不可恢复的错误,终止函数执行并逐层向上触发defer,最终若未被recover捕获,程序会崩溃,recover用于在def... 目录1. panic 的作用2. 基本用法3. recover 的使用规则4. 错误处理建议5. 常见错

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript