首页 > 其他分享 >Cocos Creator动作系统和缓动系统总结

Cocos Creator动作系统和缓动系统总结

时间:2023-11-10 15:55:55浏览次数:43  
标签:200 Cocos 动作 Creator cc tween 缓动 动系统 100

动作系统就是可以在一定的时间内实现位移、旋转、缩放、跳动等各种动作。

需要注意的是,动作系统跟 Cocos Creator 编译器的动画系统不同,动作系统是面向程序员的API接口,而动画系统是通过编译器来设计,它们服务于不同的使用场景,动作系统通常适合做一些简单的位移、旋转等动作,而动画系统则相对要强大的许多,可以对UI增加各种属性来做到一些复杂的动画。。

  1. 动作系统Action

Action是动作命令,先创建动作,然后就可以通过节点运行动作。

Action包括,改变位置、大小、旋转等属性;

Action分为两大类:1.一段时间后完成 ActionIntervial 2. 瞬时完成 ActionInstant

 

// 创建一个移动的动作,在 2 秒内,移动到 x = 100,y = 100 的位置

let action = cc.moveTo(2, 100, 100)

// 执行动作,所有的动作都需要一个目标通过 runAction 去执行它

node.runAction(action)

 

// 当我们想中途停止一个目标的运动

node.stopAction(action)

 

// 如果有多个目标在运动的过程中,想停止所有的动作

node.stopAllActions()

 

以上就是实现了一个简单的动作。

如果我们想实现更多的动作效果,也可以通过不同的接口来实现。

动作系统也分为 时间间隔动作 和 即时动作。

  1. 时间间隔动作ActionIntervial

时间间隔动作:就是在一定的时间内完成指定的动作。

 

 

cc.moveTo(2, 100, 100) // 移动到目标位置,也就是说,无论我们的想要移动的目标处于什么位置,执行这个动作后,都会在 2s 的时间内移动到 x = 100,y = 100 的这个位置。参数可以是2 ~ 3个参数,如果是两个参数,则表示在 y轴 的方向上没有效果。

cc.moveBy(2, 100, 100) // 移动指定的距离,也就是说,无论我们的想要移动的目标处于什么位置,执行这个动作后,都会在 2s 的时间内移动到距离上一个位置在 x 上增加 100 的距离,在 y 上增加 100 的距离,会产生叠加的效果。参数可以是2 ~ 3个参数,如果是两个参数,则表示在 y轴 的方向上没有效果。

 

cc.rotateTo(2, 1080 ,1080) // 旋转到目标角度,在平面图上,参数为2 ~ 3个的效果是相同的,只有在三维效果才会不同。

cc.rotateBy(2, 1080, 1080) // 在两秒内,旋转到指定的角度, 效果也是叠加的

 

cc.scaleTo(2, 0.5, 0.5) // 在两秒内,将节点的大小缩放到指定的倍数

cc.scaleBy(2, 1.2, 1.2) // 在两秒内,按指定的倍数去缩放节点,同样多次点击,效果会累加。

 

cc.skewTo(1, 60, 60) // 在1 秒内,偏斜到目标角度

cc.skewBy(1, 40, 40) // 在1秒内,偏斜指定的角度;多次点击,数值会累加

 

cc.jumpTo(3, 200, 200, 50, 5) // 在3秒内,用跳动的方式移动到坐标为(200, 200)的位置,每次跳跃的高度为50,跳跃5次。

cc.jumpBy(2, 100, 100, 50, 5) // 在2秒的时间内,用跳跃的方式指定的距离,(100, 100)会进行累加,每次跳跃的高度为50,跳跃次数为5次

 

cc.blink(3, 10) // 在3秒内,闪烁10次,这个是基于透明度的闪烁

 

cc.fadeTo(3, 100) // 在3秒内,修改透明度到100的值

cc.fadeIn(2)    // 渐显,参数为时间

cc.fadeOut(2)   // 渐隐,参数也为时间

cc.tintTo(3, 0, 255, 0) // 在3秒内,修改颜色到指定值,后面的三个参数表示的是 rgb 的值

cc.tintBy(1, 100, 200, 100)  // 在1秒内按指定的增量(100, 200, 100)修改颜色,颜色会从 rgb(0, 0, 0) 开始增加

 

cc.delayTime(5)    // 表示延迟指定的时间量,用作延迟效果

cc.reverseTime()    // 用于反转目标动作的时间轴

  1. 即时动作ActionInstant

即时动作:立即发生的动作,没有时间的间隔

cc.show()      // 立即显示

cc.hide()        // 立即隐藏

cc.toggleVisibility()  // 显隐状态的切换

 

cc.removeSelf()    // 从父节点移除自身

 

cc.flipX()       // 沿X轴翻转

cc.flipY()       // 沿Y轴翻转

 

cc.place()       // 放置在目标位置,参数为X,Y的值

 

cc.callFunc()     // 执行一个回调函数

  1. 缓动动作Easing

缓动动作:目标在运动的时间内,会调节不同阶段的运动的速度。

 

 

 

有时候为了让动作看起来比较优雅,不那么呆板,

可以用cc.easeXXX加上缓动特效,有很多方法,可以查官方API,

在此就举一个使用的例子:

var r = cc.rotateBy(2,360).easing(cc.easeCubicActionOut()); //按三次函数缓动退出

var rf = cc.repeatForever(r);

this.node.runAction(rf);

  1. 容器动作

通常我们在规划动作时,不会是一种单一的动作,而是多种动作结合运动达到我们想要的一种效果。

cc.spawn    // 同步执行动作,也就是说,可以在相同的时间段内,执行不同的动作达到同步的效果。比如说,在进行位移的同时,可以实现旋转和缩放等动作。

cc.sequence    // 顺序执行动作,即在不同的时间段执行不同的动作

cc.repeat      // 重复执行动作,代入执行动作的参数后,要加一个重复的次数

 

例如:

cc.repeat(cc.sequence(cc.moveTo(1, 400, 200), cc.moveTo(1, -400, -200),cc.delayTime(0.5), cc.tintBy(2, 10, 50, 10), cc.jumpTo(3, 400, -100, 100, 20),cc.flipY(true)), 10)

重复10次执行的动作

cc.repeatForever // 永久重复动作

cc.speed     // 修改动作速率

例如:

cc.speed(cc.sequence(cc.moveTo(5, 400, 200), cc.moveTo(5, -400, -200)), x1)

x1 的数值越大,则动作的速率越快;数值为负值时,则不改变速率。

  1. 缓动系统cc.tween

从Cocos Creator v2.0.9,增加了一个新的缓动动作cc.tween。

Tween 提供了一个简单灵活的方法来创建 action。 相对于 Cocos 传统的 cc.Action,cc.Tween 在创建动画上要灵活非常多:

支持以链式结构的方式创建一个动画序列。

支持对任意对象的任意属性进行缓动,不再局限于节点上的属性,而 cc.Action 添加一个属性的支持时还需要添加一个新的 action 类型。

支持与 cc.Action 混用;

支持设置 Easing 或者 progress 函数。

 

cc.tween有两种主要的设置方式:to 改变到某个值、by 变化值。

 

//cc.tween可以同时设置多个属性

//cc.tween 在调用 start 时会将之前生成的 action 队列重新组合生成一个 cc.sequence 队列,依次执行。

 

cc.tween(this.node)

//to,在第一秒的时候放大为2倍,位置为(100,100),角度变化到120

.to(1,{scale:2,position:cc.v2(100,100),rotation:120})

//by,在第二秒时,缩放变化1.5倍,即最终放大为原始大小的3倍,位置变化了(100,100),即现在位置为(200,200)

.by(1,{scale:1.5,position:cc.v2(100,100)})

//在第三秒时缩放为原来的大小,位置设置为(0,0),然后加了一个缓动效果backOut

.to(1,{scale:1,position:cc.v2(0,0)},{easing:"backOut"})

.start();

 

从以上的例子可以看出来,cc.tween就是链式的一序列的api,可以同时修改多个属性,并且可以同时设置缓动效果

 

不仅如此,cc.tween还可以缓动任意对象的任意属性,如

 

var obj = { a: 0 }

cc.tween(obj)

.to(1, { a: 100 })

.start()

 

标签:200,Cocos,动作,Creator,cc,tween,缓动,动系统,100
From: https://www.cnblogs.com/bycw/p/17824300.html

相关文章

  • Cocos Creator中Sprite组件使用详解
    在CocosCreator游戏开发中,Sprite组件是非常重要的组件之一,也是使用最频繁的组件之一。因此,必须对其非常熟悉。Sprite组件简介1:游戏中显示一个图片,通常我们把这个叫做”精灵”sprite2:cocoscreator如果需要显示一个图片,那么需要在节点上挂一个精灵组件,为这个组件指定要......
  • Cocos Creator 3.x 之Android Studio打包(二)
    一,重构Android项目1, 新建Activity(这里是:AlexActivity)继承自AppActivity2,编辑AndroidManifest.xml,使AlexActivity为启动Activity二,JavaScript调用Java1,方法签名方法签名稍微有一点复杂,最简单的方法签名是 ()V,它表示一个没有参数没有返回值的方法。其他一些例子:(I)V 表示参数为......
  • Cocos Creator 3.x 如何动态修改3D物体的透明度
    CocosCreator3.x的2DUI有个组件UIOpacity组件可以动态修改UI的透明度,非常方便。很多同学想3D物体上也有一个这样的组件来动态的控制与修改3D物体的透明度。今天基于CocosCreator3.8来实现一个可以动态修改3D物体透明度的组件Opacity3D。 一个3D物体如何才能够半透明显......
  • QtCreator 格式化代码
    目录Beautifier插件介绍配置Beautifier步骤1、使用ArtisiticStyle2、使用Clang-format3、使用uncrustify参考Beautifier插件介绍QtCreator本身默认支持代码格式化,具体格式化快捷键为:Ctrl+i。可以选择部分或全部选择后执行Ctrl+i操作完成代码格式化。但只限于缩进......
  • Cocos Creator 3.x 之Android Studio打包
    一,前言1,CocosCreator5.3.22,AndroidStudioDolphin|2021.3.1Patch13,SDK和NDK3.1,SDK3.1,NDK二,使用CocosCreator构建Android工程1,点击“构建”按钮。(注意:不用点击“生成”,我们使用AndroidStudio生成APK)2,生成的Android工程注意:在Cocos项目下生成了native文件夹,如下三,手......
  • Cocos 2.x- 屏幕适配、对齐策略
    在《Cocos2.x-HelloWorld飞机大战游戏》,简单实现了一个Cocos2.xHelloWorld程序,但是在不同的机型的运行效果,会出现黑边的情况,在查看CocosCreator的手册之后,发现了一个简单的解决方案,这里记录一下处理过程。1.环境搭建为了不对原来的代码进行大的调整,这里单独创建了一个......
  • Cocos 2.x-Hello World 飞机大战游戏
    Java程序员Cocos2.x初体验(Helloworld),飞机大战游戏参考野生程序君教程1.环境搭建在Cocos官网下载CocosDashboard_2.0.1.exe,安装,启动后设置编辑的目录(默认情况下,编辑器安装在C盘中,每一个版本的编辑会占用较大的空间,所以这里将编辑器安装目录配置在的D盘)在安装列表中新增......
  • Qt Creator常用快捷键及技巧提升编码效率
    转:https://blog.csdn.net/luoyayun361/article/details/105431913https://blog.csdn.net/u_topian/article/details/130366561https://blog.csdn.net/Zeek_0114/article/details/98938547代码编辑1.定义触发片段打开工具->选项->文本编辑器->片段,右侧点击添加2///三个斜杠......
  • CocosCreator3.x 应用在UI(Sprite) 上的 shader(.effect) 的合批,通过自定义顶点参数(一
    前言为啥要合批减少DC什么是自定义顶点参数通过几何体实例化特性(GPUInstancing)可使GPU批量绘制模型相同且材质相同的渲染对象。如果我们想在不打破这一特性的情况下单独修改某个对象的显示效果,就需要通过自定义几何体实例化属性。参考文档UI(Sprite)怎么你了?按照文......
  • CocosCreator3.x 应用在UI(Sprite) 上的 shader(.effect) 的合批,通过自定义顶点参数(二
    具体操作步骤接下来以一个制造旋转效果的shader为例子,提供了这些参数的设置:旋转速度float旋转中心位置vec2逆时针/顺时针bool扭曲度float并在使用的贴图一致的前提下并且参数不同的值都能够合批。最终项目可以从GITHUB获取。CCC版本:3.8.0深入了解可以阅读后续......