cocoscreator中tween详细用法

基本方法:
to:对属性进行绝对值计算,最终的运行结果即是设置的属性值,即改变到某个值
by:对属性进行相对值计算,最终的运行结果是设置的属性值加上开始运行时节点的属性值,即变化值

cc.tween(this.node).to(1, { position: cc.v2(100, 100), angle: -90 }).by(1, { scale: 2 }).start();
贝塞尔曲线:
cc.tween(this.node).bezierTo(3, cc.v2(0, cc.winSize.height / 2), cc.v2(300, -cc.winSize.height / 2), cc.v2(300, 100)).start();
支持缓动任意对象的任意属性:
let obj = { a: 0 }
cc.tween(obj).to(1, { a: 100 }).start();
变速 easing
cc.tween(this.node).to(1, { scale: 2, position: cc.v2(100, 100), angle: -90 }, cc.easeIn(3.0)).start();
自定义 progress
// 对所有属性自定义 progress
cc.tween().to(1, { scale: 2, rotation: 90 }, {progress: (start, end, current, ratio) => {return start + (end - start) * ratio;}
})
// 对单个属性自定义 progress
cc.tween().to(1, {scale: 2,position: {value: cc.v3(),progress: (start, end, current, t) => {// 注意,传入的属性为 cc.Vec3,所以需要使用 Vec3.lerp 进行插值计算return start.lerp(end, t, current);}}
})
· 插入其他的缓动到队列中
let scale = cc.tween().to(1, { scale: 2 });
let rotate = cc.tween().to(1, { angle: -90 });
let move = cc.tween().to(1, { position: cc.v3(100, 100, 100) });
// 先缩放再旋转
cc.tween(this.node).then(scale).then(rotate);
// 先缩放再移动
cc.tween(this.node).then(scale).then(move);
then 不仅可以插入 tween,还可以插入 action,比如跳跃(jumpTo)等​​​​​​​let jumpTo = cc.jumpTo(2, cc.v2(300, 300), 50, 4);
cc.tween(this.node).then(jumpTo).start();
并行执行缓动:
let t = cc.tween;
t(this.node)
// 同时执行两个 cc.tween
.parallel(t().to(1, { scale: 2 }),t().to(2, { position: cc.v2(100, 100) })
)
.call(() => {console.log('All tweens finished.');
})
.start();
回调:
cc.tween(this.node).to(2, { angle: -90 }).to(1, { scale: 2 })// 当前面的动作都执行完毕后才会调用这个回调函数.call(() => { cc.log('This is a callback'); }).start();
重复执行:
repeat:重复指定次数
cc.tween(this.node).by(1, { scale: 1 })// 对前一个 by 重复执行 10次.repeat(10)// 最后 node.scale === 11.start();
repeatForever:无限重复
cc.tween(this.node).by(1, { scale: 1 }).repeatForever().start();
union: 
repeat/repeatForever 函数只会将前一个 action 作为作用对象,如果希望重复多个 action 话,可是使用 union(将之前所有的 action 整合为一个 action)cc.tween(this.node).by(2, { angle: -90 }).by(1, { scale: 2 }).union().repeat(10).start();
延迟执行:
cc.tween(this.node)// 延迟 1s.delay(1).to(1, { scale: 2 })// 再延迟 1s.delay(1).to(1, { scale: 3 }).start();
暂停本节点上所有正在运行的动作
this.node.pauseAllActions();恢复运行本节点上所有暂停的动作
this.node.resumeAllActions();停止当前 tween
tween.stop();停止所有指定对象的缓动
cc.Tween.stopAllByTarget(this.node);停止所有指定标签的缓动
cc.Tween.stopAllByTag(100);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/17678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL面试题

下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言…

关于单体架构缓存刷新实现方案

背景 如果各位看官是分布式项目应该都采用分布式缓存了,例如redis等,分布式缓存不在本次讨论范围哈;我个人建议是,如果是用户量比较大,建议采用分布式缓存机制,后期可以很容易前后到分布式服务或微服务。 …

安装Apache遇到的问题

安装Apache服务 httpd -k install -n Apache2.4 #-n后面表示自定义访问名称 问题1: 此时去 windows 的开始摁扭里找到控制器右键管理员运行 问题2: 命令行没用对 应该用: .\httpd -k install -n Apache2.4 #-n后面表示自定义访问名称

kafka常用命令

目录 Kafka通用命令 进入Kafka 1.进入kafka容器 2.进入kafka目录 查看Topic信息 1.查看所有Topic的列表 2.查看单个Topic的信息 查看ConsumerGroup信息 1.查看所有ConsumerGroup的列表 2.查看单个ConsumerGroup的信息 读取Topic中的数据 向Topic写入数据 Kafka通用…

快速响应,上门维修小程序让您享受无忧生活

随着科技的不断发展和智能手机的普及,上门维修小程序成为了现代人生活中越来越重要的一部分。上门维修小程序通过将维修服务与互联网相结合,为用户提供了更加便捷、高效的维修服务体验。下面将介绍上门维修小程序开发的优势。   提供便捷的预约方式&am…

驱动开发相关内容复盘

并发与竞争 并发 ​ 多个“用户”同时访问同一个共享资源。 竞争 并发和竞争的处理方法 处理并发和竞争的机制:原子操作、自旋锁、信号量和互斥体。 1、原子操作 ​ 原子操作就是指不能再进一步分割的操作,一般原子操作用于变量或者位操作。 ​ …

神经网络原理概述

文章目录 1.神经元和感知器1.1.什么是感知器1.2.什么是单层感知器1.3.多层感知机(Multi-Layer Perceptron,MLP) 2.激活函数2.1.单位阶跃函数2.2.sigmoid函数2.3.ReLU函数2.4.输出层激活函数 3.损失函数4.梯度下降和学习率5.过拟合和Dropout6.…

Vue3使用vxetable进行表格的编辑、删除与新增

效果图如下: vxetable4传送门 一、引入插件 package.json中加入"vxe-table": "4.0.23",终端中执行npm i导入import {VXETable, VxeTableInstance

docker容器的基本操作

一、查看Docker的版本信息 [roothuyang1 ~]# docker version 二、查看docker的详细信息 [roothuyang1 ~]# docker info 三、Docker镜像操作 Docker创建容器前需要本地存在对应的镜像,如果本地加载不到相关镜像,Docker默认就会尝试从镜像仓库https://hu…

vue3 封装一个事件方法,支持所有页面调用

我做的是路由跳转,因为需要支持跨项目使用,所以才使用这个方法 在router.js中 import { createRouter, createWebHistory } from vue-router;// 创建路由实例和路由配置... export const router createRouter({history: createWebHistory(),routes: [/…

数据可视化与机器学习建模:心力衰竭预测_企业科研_论文科研_毕业设计

数据分析与可视化 心力衰竭或心血管疾病 (CVD) 是全球第一大死因,每年夺去大约1790 万人的生命,占全球所有死亡人数的 31%。 大多数心血管疾病可以通过使用全民策略解决烟草使用、不健康饮食和肥胖、缺乏身体活动和有害使用酒精等行为风险因素来预防…

提高检索效率的利器--Mybatis 的一级缓存和二级缓存执行顺序

😀前言 本篇博文是关于MyBatis缓存的执行顺序,希望能够帮助到您😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是…

elementUI 实现动态表单数据校验

转载http://t.csdn.cn/XuTa2 1、探讨需求 首先我们需要探讨一下需求: 表单中的部分el-form-item 的label都是从接口拿到的,需要遍历进行动态渲染。 需要给每个el-form-item加上校验至少是必填校验 有的el-form-item不需要校验,也不是从接口…

@monaco-editor/react组件CDN加载失败解决办法

monaco-editor/react引入这个cdn资源会load失败 网上很多例子都是这样写的,我这样写monaco会报错 import * as monaco from monaco-editor; import { loader } from monaco-editor/react;loader.config({ monaco });改成这样 import * as monaco from monaco-edi…

​​​amoeba实现MySQL读写分离

​​​amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为192.168.131.136。三台服务器操作系统为RHEL6.4 x86_64,为…

大数据课程E2——Flume的Source

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握Source的AVRO Source; ⚪ 掌握Source的Exec Source; ⚪ 掌握Source的Spooling Directory Source; ⚪ 掌握Source的Netcat Source; ⚪ 掌握Source的Sequence Generator Source;…

搞活系列-Java NIO之偏偏不用buffer.flip()会出现什么问题?

最近看博客又看到了Java NIO相关的博客,其中有讲解NIO和传统IO关于文件复制的文章,看到了如下的代码: /**** channel用例* 基于channel的文件复制*/Testpublic void fileCopyByChannel(){try {FileInputStream fileInputStream new FileInpu…

TypeScript 【type】关键字的进阶使用方式

导语: 在前面章节中,我们了解到 TS 中 type 这个关键字,常常被用作于,定义 类型别名,用来简化或复用复杂联合类型的时候使用。同时也了解到 为对象定义约束接口类型 的时候所使用的是 Interfaces。 其实对于前面&#…

iOS 应用上架流程详解

iOS 应用上架流程详解 欢迎来到我的博客,今天我将为大家分享 iOS 应用上架的详细流程。在这个数字化时代,移动应用已经成为了人们生活中不可或缺的一部分,而 iOS 平台的 App Store 则是开发者们发布应用的主要渠道之一。因此,了解…

智安网络|常见的网络安全陷阱:你是否掉入了其中?

在数字化时代,网络安全成为了一个重要的议题。随着我们越来越多地在互联网上进行各种活动,诸如在线银行交易、社交媒体分享和在线购物等,我们的个人信息也更容易受到攻击和滥用。虽然有许多关于网络安全的指导和建议,但仍然有许多…