整理一下tween 复杂用法

tween 动画默认是顺序执行的,所以不用考虑顺序问题

1:并行动画(同时执行)

//角色移动动画roleMove(node) {return new Promise((res, rej) => {cc.tween(node).parallel(cc.tween().delay(0.8).call(() => { res()}),cc.tween().to(1, { position: cc.v2(0, 0) }).call(() => {node.removeFromParent();node.destroy();})).start()})},

在parallel 执行多个动画 用 逗号隔开,官方说明 好像可以用  结构数组的方法带入 ...arr 还是直接带入数组 需要自己测试

2:重复执行

cc.tween(this.qipanNode).repeatForever(cc.tween().by(1.5, { position: cc.v2(0, 10) }, { easing: 'easeInOut' }).by(1.5, { position: cc.v2(0, -10) }, { easing: 'easeInOut' })).start()

3:同时修改多个属性(这个相对简单)

cc.tween(node).to(0.5,{opacity:255,scale:2}).call(()=>{}).start()

4:停止 继续 tween(暂时写的简单的旋转暂停)

if (type) {cc.tween(this.iconSprite.node).repeatForever(cc.tween().by(3, { angle: -180 }).by(6, { angle: -360 })).start()} else {this.iconSprite.node.stopAllActions();}

5:使用 easing (弹动)

this.labelNode.setScale(0.2)this.labelNode.active = true;cc.tween(this.labelNode).to(0.5,{scale:1}, { easing: 'elasticOut'}).delay(0.8).start()

6:持续旋转

cc.tween(this.fzNode1).repeatForever(cc.tween().by(3, { angle: -180 }).by(6, { angle: -360 })).start()cc.tween(this.fzNode2).repeatForever(cc.tween().by(3, { angle: 180 }).by(6, { angle: 360 })).start()

7:翻转动画(foreach实现多个节点同时翻转)

 arr.forEach(node=>{
//翻转时禁止点击node.getComponent(cc.Button).interactable = false;let icon = node.getChildByName('icon');let back = node.getChildByName('back');back.active = true;icon.active = true;cc.tween(node).to(0.2,{scaleX:0.01}).call(()=>{/*这里我直接复制的代码 根据当前显示面来隐藏背面
*/if(this.skillsPageType == 1){back.opacity = 0;back.active = false;icon.opacity = 255;}if(this.skillsPageType == 2){icon.opacity = 0;icon.active = false;back.opacity = 255;}}).to(0.2,{scaleX:1}).call(()=>{//翻转结束 可以点击this.isSwitchIng = false;node.getComponent(cc.Button).interactable = true;}).start()})

8:简单盖章效果

 //this.spriteNode 需要盖下的节点//this.bgNode 整体this.spriteNode.opacity = 0;this.spriteNode.active = true;this.spriteNode.setScale(5);cc.tween(this.spriteNode).to(0.3, { scale: 1, opacity: 255 }, { easing: 'easeInOut' }).call(() => {cc.tween(this.bgNode).to(0.1, { scale: 0.95 }).to(0.1, { scale: 1 }, { easing: 'bounceInOut' }).start();}).start();

9:单个节点的倒计时(独立倒计时)

同节点内多个倒计时 如果关闭一个会导致全部关闭 所以利用tween来实现针对节点的独立倒计时

 landPlanting(node, item) {let text = node.getChildByName('text');text.active = true;node.matureCountDown = item.matureCountDown;text.getComponent(cc.Label).string = `${node.matureCountDown}`;if (item.matureCountDown > 0) {node.stopAllActions();cc.tween(node).repeatForever(cc.tween().delay(1).call(() => {if (node.matureCountDown <= 0) {this.harvestNode(node)}node.matureCountDown--;text.getComponent(cc.Label).string = `${node.matureCountDown}`;})).start()} else {this.harvestNode(node)}},

harvestNode中写的就是 stopAllActions 和初始化的方法

10:循环动作链

let arr: any = []for (let i= 0; index < 10; index++) {arr.push(cc.callFunc(()=> {console.log('测试')}));arr.push(cc.delayTime(moveTime / checkCount));
}cc.tween(node).sequence(arr).start()

将action存入数组 用.sequence执行

以后碰到复杂动画补齐语法。

creator tween复杂用法相关推荐

  1. Cocos Creator游戏开发教程 学习笔记

    学完提问几个问题吧: position的锚点位置数值原点在哪里? 因为position是相对坐标,所以原点是父节点的锚点 .所以Canvas下面的直属节点原点就是世界坐标系的原点Canvas的锚点. ...

  2. dotween上下摆动_DoTween用法教程

    DoTween用法攻略 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar-- 心分享.心创新 ...

  3. qdebug重定向_每个Qter都该知道的qDebug

    在项目的开发中,当我们调试程序时,最常用的就是打印信息了,Qt为我们提供了非常方便的打印信息类QDebug. 大家应该已经很熟练的使用QDebug了,但也许有些地方并没有注意到,下面小豆君就介绍一下Q ...

  4. Cocos Creator里cc.tween的stopAllActions() 和 repeatForever的用法

    this.useNowBtn.stopAllActions(); this.useNowBtn.setPosition(46 + t * 120, 360); cc.tween(this.useNow ...

  5. Qt Creator用法详解

    Qt自带集成开发环境(IDE),名为Qt Creator.它可以在Linux.OS X和Windows上运行,并提供智能代码完成.语法高亮.集成帮助系统.调试器和剖析器集成,还集成了所有主要的版本控制 ...

  6. 小白练习cocos creator——property用法记录

    property用法记录 参考文档:官方文档-属性检查器 在记录property用法之前,先说下从官方文档中摘抄的笔记:用property修饰的属性是组件脚本中声明的公开的并可被序列化存储在场景和动画 ...

  7. creator shader, 河面水流的效果 噪声图的花式用法

    河面水流的效果 又名,噪声图的花式用法 抄自哪里的呢?网上看别的人游戏有一个,就搞了搞试试,还凑合 开始吧,弄个干净的shader,然后布个游戏场景 主场景图 这张图是反转y轴,放在下方做水面用的 场 ...

  8. cocos creator尝试使用tween的几种新实现方案

    尝试使用tween的几种新实现方案 旧方式 tween(this.testNode1).then(tween(this.testNode1).to(1, {position: v3(500, 0, 0 ...

  9. cocos creator 3.x使用tween缓动接口和贝塞尔曲线实现简易抛物线

    抛物线还是比较常用的,人物跳跃,投掷物等等,2dx和3.x接口很多都不兼容了,本文使用3.x中的缓动函数配合onUpdate钩子,计算并设置贝塞尔曲线中的坐标实现简易的抛物线运动. 代码: nodeM ...

  10. cocos creator随便乱记的笔记——可能大概是3.0新的用法

    一个纯洁无瑕的萌新学的时候随便记的,不理解.不准确.不用看.不一定更新 . . . 属性声明 所有想在引擎里看到并挂载的属性在声明的前面都要加@property装饰.不想手动挂载的不用装饰,但是所有的 ...

最新文章

  1. ASP.NET协作应用集成到trsids身份验证服务器的开发流程
  2. HBase 与Hive数据交互整合过程详解
  3. 如何保证消息消费顺序呢?
  4. android 判断空,Android空判断的坑
  5. 基于java教学管理系统设计(含源文件)
  6. 页面上插入flash文件
  7. php读入输入_php-读取用户输入并检查数据类型
  8. 理解认证_授权_以及会话_Spring Security OAuth2.0认证授权---springcloud工作笔记110
  9. 怎么用eclipse修改web工程的访问路径
  10. matlab二维正态分布图,MATLAB二维正态分布图
  11. mybase6.0.4的license key的生成方法
  12. cearte-react-app中craco中优雅引入svg【自定义宽、高、颜色,仅需5步】
  13. 分享Python采集的77个PHP整站程序源码
  14. docker pull redis 镜像
  15. ORA-01455: converting column overflows integer datatype
  16. Vue中props属性
  17. ie6浏览器下border边框线出现断裂问题解决方法
  18. hdu2448 费用流
  19. 我在赶集网的两个月 (完整版)
  20. Android Studio使用Mob获取手机验证码

热门文章

  1. 互联网变迁-真实化信息的转移
  2. Belief Propagation信念传播算法详解
  3. Yolov5学习笔记(1)——训练出自己的模型
  4. 机器人 铁血兵团 魂斗罗_【魂斗罗铁血兵团中文版】魂斗罗铁血兵团中文版下载-街机中国...
  5. css实现3D书本翻页动画
  6. Win10自更改鼠标指针重启后恢复默认解决方法_windows10 每一次开机都把鼠标指针还原成系统默认的指针
  7. 爱奇艺视频怎么下载,如何将qsv格式转为mp4格式
  8. 解决台式机前耳机插孔没有声音
  9. js 身份证号码验证包含15位和18位
  10. ZZNUOJ_用C语言编写程序实现1236:数的逆转(附完整源码)