首页 > 其他分享 >教你彻底搞懂Cocos Creator Tween

教你彻底搞懂Cocos Creator Tween

时间:2023-11-17 12:13:22浏览次数:29  
标签:tween Cocos 对象 Tween cc Action 100 搞懂

Cocos 使用了Tween来代替原来的Action系统, 今天来给大家讲解Tween如何使用, 帮助大家掌握Tween的使用,并且对Tween有一个更深入的了解。

对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。

1: Tween到底是什么?
Cocos Creator 里面的Tween你可以理解为是一个容器对象, 在这个容器对象里面可以存放很多的”执行过程”,当执行这个Tween的时候,会一个一个过程的触发执行。这样Tween的使用就归纳总结出3个步骤:

(1): 创建一个Tween对象;

(2): 往Tween里面填加一个一个的执行过程;

(3): 执行Tween对象,引擎会一个一个的执行之前添加进来的过程。

例如:在0.5秒以内,让A物体从当前位置,移动到(100, 0)位置,代码如下

(1) 你要改变A物体位置,所以Tween的目标对象是A物体所在节点。

var t = cc.tween(A物体对应节点); 创建了一个针对A物体节点的Tween对象。

(2) 定制中间执行过程, 这个过程可以是一个,也可以是多个,这里我们是要从当前位置移动到(100, 0)的位置,所以使用tween对象的to函数来指定。

t.to(时间(0.5s), 属性列表{}), 属性列表,可以填写Tween针对的目标对象实例中的任意属性, 我们这里是x, y, 所以 t.to(0.5, {x: 100, y: 0}); 这样就给目标物体创建了一个过程,0.5s之内从当前位置移动到目标位置(100, 0)。

(3) 启动执行这个tween对象: t.start();

代码如下:

// step1: 创建一个针对目标的tween对象

var t = cc.tween(this.node);

// step2: 添加执行过程;

t.to(0.5, {x: 100, y: 0});

// step3: 开始执行tween对象

t.start();

2: Tween 可以添加哪些过程
Tween可以添加哪些过程,我们可以去查看一下Tween的API文档,在代码编辑器里面右键Tween对象,然后在”Go to Definition”

 

这样可以知道往这个Tween里面加入哪些过程。这些过程creator.d.ts里面都有,我这边就不再重复的编写,这里我就想分享一个小技巧,就是很多同学不知道props怎么写,到底可以写哪些内容?

添加一个对属性进行绝对值计算的 action

@param duration duration

@param props {scale: 2, position: cc.v3(100, 100, 100)}

@param opts opts

其实这个很简单,你只要打开target对象的类型,比如节点,cc.Node, 他有哪些属性数据成员,这里的props就可以填写哪些,不用死记硬背。

如果再执行的过程中要停止Tween的执行,可以使用Tween的Stop相关接口即可。

3: Tween的源码实现
打开cocos引擎源码actions/tween.js, 你会发现Tween其实是基于Cocos 的Action系统来实现的, Tween容器对象里面放的是一个一个的TweenAction, 这样Tween实际上是Action系统来实现的。TweenAction是Tween编写的一个Action, 这个Action继承自 cc.ActionInterval, 在update里面来根据进度修改Target对应的属性。还有一些函数调用的Tween,其实就是之前的Action里面的cc.callFunc, 如图所示:

 

所以看完这些以后,相信你对Tween将会有一个详细的了解了。

标签:tween,Cocos,对象,Tween,cc,Action,100,搞懂
From: https://www.cnblogs.com/bycw/p/17838362.html

相关文章

  • Cocos Creator 3.x 如何动态修改3D物体的透明度
    CocosCreator3.x的2DUI有个组件UIOpacity组件可以动态修改UI的透明度,非常方便。很多同学想3D物体上也有一个这样的组件来动态的控制与修改3D物体的透明度。今天基于CocosCreator3.8来实现一个可以动态修改3D物体透明度的组件Opacity3D。 一个3D物体如何才能够半透明显......
  • Cocos Creator 项目实战《3D切水果》
    今天跟大家分享一个CocosCreator3D切水果的实战案例,帮助大家掌握CocosCreator开发3D微信抖音小游戏,开发工具我们采用的是CocosCreator3.6。先上一波游戏操作效果图,接下来通过本文来讲解这个游戏的一些核心的技术点。   游戏项目资源准备 我们刚开始做项目的时候......
  • Cocos Creator 常见错误排查方法
    CocosCreator新手开发的时候经常会遇到一些错误不知道如何解决,今天把这些错误总结一下,下次遇到的时候,自己知道如何分析。 到底谁为null或undefine 我们在使用CocosCreator开发的时候,运行游戏项目,经常会遇到这样的问题: TypeError:Cannotreadpropertiesofnull(rea......
  • Cocos Creator中定时任务的实现
    在CocosCreator游戏开发中,经常需要使用定时任务,例如,赛车游戏游戏开始前的倒计时,玩家游戏结束之后等待3秒进入下一局,打地鼠游戏中,地鼠出洞3秒后消失,飞机大战中飞机每隔1秒钟发射一颗子弹等等。由于其应用场景非常多,因此,CocosCreator中为我们提供了方便的计时器,这个计时器源自......
  • 一篇文章搞定Cocos Creator中动画编辑器的使用
    在CocosCreator游戏开发中,动画特效的使用非常频繁,而动画特效的操作对初学者来说又相对复杂,所以,初学者一定要引起重视。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀~动画编辑器使用1:创建一个节点;2:为这个节点添加一个动画组件cc.Anima......
  • kotlin协程:一文搞懂各种概念
    前言使用kotlin协程已经几年了,可以说它极大地简化了多线程问题的复杂度,非常值得学习和掌握。此文介绍并梳理协程的相关概念:suspend、non-blocking、Scope、Job、CoroutineContext、Dispatchers和结构化并发。进入协程世界简而言之,协程是可以在其内部进行挂起操作的实例,是否支持......
  • Cocos Creator开发中的事件响应
    在CocosCreator游戏开发中,我们经常需要处理事件响应。所以,我们有必要对其中的事件响应内容熟记于心,因此,将其中重要内容归纳如下:对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。触摸事件1:触摸事......
  • CocosCreator脚本属性在属性面板的显示
    声明属性要声明属性,需要在cc.Class定义的properties字段中,填写属性名字和属性参数。cc.Class({extends:cc.Component,properties:{score:{default:0,type:cc.Integer,displayName:"分数",tooltip:"玩家的分数"}}}); 下拉列表要在属性检查器上显示为下拉......
  • Cocos Creator中骨骼动画组件的使用
    在CocosCreator游戏开发中,骨骼动画对于优化系统资源占用有很大帮助,很多时候我们都会使用。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀~spine骨骼动画工具1:骨骼动画:把动画打散,通过工具,调骨骼的运动等来形成动画2:spine是一个非常流......
  • Cocos Creator常用基础操作总结
    场景操作cc.director.loadScene('场景名称');//场景跳转cc.director.preloadScene('场景名称');//预加载场景cc.director.getScene();//获取当前场景节点操作获取节点常用方法cc.find(“节点路径”)、this.node.getChildByName(“子节点名”)等。varnode=cc.find......