Cocos creator 动作系统

动作系统简介

  • 是用于控制物体运动的一套系统,完全依赖代码进行实现,动态调节节点的移动。

移动

  • cc.moveTo 移动到某个坐标(x,y)
        //1秒时间内,移动到0,0
        let action1 = cc.moveTo(1,0,0)
        this.node.runAction(action1)
  • cc.moveBy 在原坐标的基础上加上(x,y)
        //1秒内,相对位置移动500,500
        let action = cc.moveBy(1,500,500)
        this.node.runAction(action)

旋转

  • cc.rotateTo 旋转到某个角度
        //1秒内,顺时针旋转45度
        let action = cc.rotateTo(1,45)
        this.node.runAction(action)
  • cc.rotateBy 相对于当前,旋转某个角度
  • 顺时针旋转为正数

缩放

  • scaleTo缩放到指定比例
  • scaleBy缩放一定的比例
        //缩放到一定比例
        //1秒内,宽高缩放0.5倍
        let action = cc.scaleTo(1,0.5,0.5)
        this.node.runAction(action)

跳跃

  • jumpTo跳跃到指定位置
  • jumpBy
        //1秒内,原地跳跃1次,高度100
        let action = cc.jumpBy(1,0,0,100,1)
        this.node.runAction(action)

偏斜

  • skewTo 偏斜到某个角度
  • skewBy 相对当前偏斜一定角度
        //1秒内,x方向偏斜10度,y不变
        let action = cc.skewTo(1,10,0)
        this.node.runAction(action)

在这里插入图片描述

贝塞尔移动

  • 贝塞尔3个点,组成一个数组
  • bezierTo
  • bezierBy
        let height = 1920
        let bezier = [cc.v2(0, height / 2), cc.v2(300, -height / 2), cc.v2(300, 100)];
        let action = cc.bezierTo(2, bezier);
        this.node.runAction(action)

闪烁

  • 基于透明度的闪烁(0-255),blinks闪烁次数
  • blink(duration: number, blinks: number)
        //2秒内,闪烁10次
        let action = cc.blink(2,10)
        this.node.runAction(action)

透明度,渐隐,渐显

  • fadeTo(duration: number, opacity: number) 透明度动态调节
  • fadeIn 渐显
  • fadeOut 渐隐
        //1秒内,透明度变为125
        let action1 = cc.fadeTo(1,125)
        this.node.runAction(action1)

        //1秒内,逐渐显示,0变成255
        let action2 = cc.fadeIn(1)
        this.node.runAction(action2)

        //1秒内,逐渐消失
        let action3 = cc.fadeOut(1)
        this.node.runAction(action3)

变色

  • tintTo(duration: number, red: number, green: number, blue: number)
        //1秒内,变成红色
        let action = cc.tintTo(1,255,0,0)
        this.node.runAction(action)

在这里插入图片描述

以上是一定时间执行的动作ActionInterval

以下是瞬发执行的动作ActionInstant

显示/隐藏

  • cc.show() 显示
  • cc.hide() 隐藏
  • cc.toggleVisibility() 显示隐藏状态切换

翻转

  • flipX(flip: boolean) 水平方向翻转,flip是否翻转
  • flipY 竖直方向翻转
            this.moveX = this.x2 - this.x1
            //人物的转向
            if (this.moveX < -10) {
                this.player.node.runAction(cc.flipX(true))
            } else if (this.moveX > 10) {
                this.player.node.runAction(cc.flipX(false))
            }

定位

  • place(pos: Vec2|number, y?: number) 瞬移到某个位置

动作控制

  • runAction 执行动作
  • stopAction 停止动作
  • stopAllAction 停止所有动作
  • action.setTag(tag: number) 设置动作标签
  • stopActionByTag 停止指定标签的动作
  • pauseAllActions 暂停所有动作
  • resumeAllActions 恢复所有动作

动作容器

  • 创建动作序列

  • var seq = cc.sequence(act1, act2); 如果要在两个action中间加入间隔时间,则使用cc.delayTime产生的ActionInterval对象

  • 重复执行动作

  • let repeat = cc.repeat(action,times)

  • let repeat = cc.repeatForver(action)

  • 并列执行多个动作

  • let spawn = cc.spawn(a1,a2…)

缓动动作

  • easeIn
  • easeOut
  • easeInOut 先快后慢
  • action.easing(cc.easeIn(3))//设置缓动动作,加速运动
  • 还有更多的ease方法,可以看API文档

Tween对象

  • Tween代替了原来的Action
  • 使用链式代码创建一个动作序列
  • 支持与Action的混用
        cc.tween(this.node)
            //2秒移动到(500,500),同时旋转180度,同时增加一个缓动动画
            .to(2, {x: 500, y: 500, angle: 180}, cc.easeInOut(2))
            //以上动作完成后等待2秒
            .delay(2)
            //以上完成后的回调
            .call(() => {
                console.log('回调');
            })
            //1秒内,放大2倍
            .to(1, {scaleX: 2, scaleY: 2})
            //相对动作
            .by(1, {angle: 180})
            .start()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Walrus 实用教程|Walrus + Gitlab,打通CI/CD 自动化交付!

Walrus file 是 Walrus 0.5 版本推出的新功能&#xff0c;用户可以通过一个非常简洁的 YAML 描述应用或基础设施资源的部署配置&#xff0c;然后通过 Walrus CLI 执行 walrus apply或在 Walrus UI 上进行import&#xff0c;将 Walrus file 提交给 Walrus server&#xff0c;由 …

Qt简易的五子棋

五子棋是个简单的小游戏&#xff0c;尝试使用Qt将他做出来&#xff0c;学习时的练习demo。 成果展示 需求分析 五子棋&#xff1a;在棋盘上&#xff0c;黑棋先行&#xff0c;交替下棋&#xff0c;五子练成直线获取胜利。 实现过程 1.棋盘绘制&#xff1a;下棋的第一步肯定是绘制…

7000字详解Spring Boot项目集成RabbitMQ实战以及坑点分析

本文给大家介绍一下在 Spring Boot 项目中如何集成消息队列 RabbitMQ&#xff0c;包含对 RibbitMQ 的架构介绍、应用场景、坑点解析以及代码实战。 我将使用 waynboot-mall 项目作为代码讲解&#xff0c;项目地址&#xff1a;https://github.com/wayn111/waynboot-mall。本文大…

无需 Root 卸载手机预装软件,精简过的老年机又行了

基础准备 准备目标手机、USB 数据线、以及一台电脑。手机 USB 连接电脑&#xff0c;开发者选项中打开 USB 调试。&#xff08;开发者选项默认隐藏&#xff0c;需要在关于手机中多次点击版本号才能调出&#xff09;。 安装手机驱动&#xff0c;下载安装 ADB 工具包。 开始操作…

世界坐标系转换为平面地图坐标

将世界坐标系转换为平面地图坐标的方法通常涉及地图投影。地图投影是一种将地球(一个三维球体)上的点转换为平面(二维)地图上的点的方法。 这里介绍几种常见的地图投影方法: 墨卡托投影(Mercator Projection): 这是最常见的投影方式之一,尤其用于航海地图。它将经纬度…

3D数据转换器HOOPS Exchange如何获取模型的几何数据? 干货预警!

一、概述 前面讲解过模型在内存中的结构&#xff0c;现在回顾一下&#xff0c;当模型导入成功后&#xff0c;整个模型数据会以原生结构的 PRC 组装树形式存放到内存中。&#xff08;申请 HOOPS Exchange 试用&#xff09; PRC结构的主要类型包含四种&#xff0c;分别是…

Pipwork相关测试过程

pipework可以减轻docker实施过程中的工作量&#xff0c;在网上也找了几篇类似的文章&#xff0c;按照相应配置&#xff0c;结果并不相同 如下测试过程记录下&#xff1a; docker run -it --rm --name c1 busybox docker run -it --rm --name c2 busyboxpipework br1 c1 192…

数据结构:大顶堆、小顶堆

堆是其中一种非常重要且实用的数据结构。堆可以用于实现优先队列&#xff0c;进行堆排序&#xff0c;以及解决各种与查找和排序相关的问题。本文将深入探讨两种常见的堆结构&#xff1a;大顶堆和小顶堆&#xff0c;并通过 C 语言展示如何实现和使用它们。 一、定义 堆是一种完…

【代码随想录-链表】两两交换链表中的节点

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

虹科方案|释放总线潜力:汽车总线离线模拟解决方案

导读&#xff1a;传统的ECU模拟工具通常需要依赖上位机软件来发起通信&#xff0c;这在离线场景和自动化产线中带来不便。为了应对这一挑战&#xff0c;虹科推出了创新的汽车总线离线模拟解决方案&#xff0c;基于PCAN-Router系列网关&#xff0c;通过内部可编程固件&#xff0…

Ubuntu 22.04 中文乱码解决方案

sudo apkg-reconfigure locales 按空格键选中

TypeScript(七) 函数

1. TypeScript 函数 1.1. 函数的定义 函数就是包裹在花括号中的代码块&#xff0c;前面使用关键字function。 语法&#xff1a; // An highlighted block function function_name() {// 执行代码 }实例&#xff1a; function test() { // 函数定义console.log("我就是…

【leetcode题解C++】257.二叉树的所有路径 and 404.左叶子之和 and 112.路径总和

257. 二叉树的所有路径 给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,null,5] 输出&#xff1a;["1->2->5",&…

给准备从事软件开发工作的年轻人的13个建议

从事软件开发是一个不断学习和适应变化的过程。这里有一些针对刚入行或准备从事软件开发工作的年轻人的建议&#xff1a; 掌握基础知识&#xff1a;确保你有扎实的编程基础。了解至少一种编程语言的语法和核心概念&#xff0c;比如C语言、Python、Java或C#。同时&#xff0c;理…

fastadmin后台自定义按钮和弹窗

工具栏自定义按钮-ajax请求 前端代码 1.在对应模块的模板文件index.html添加自定义按钮&#xff0c;注意按钮要添加id以绑定点击事件 <div class"panel panel-default panel-intro">{:build_heading()}<div class"panel-body"><div id&qu…

.net core 6 集成 elasticsearch 并 使用分词器

1、nuget包安装NEST、安装elasticsearch、kibana、ik分词器、拼音分词器 2、创建操作对象 //索引库 static string indexName "testparticper"; //es 操作对象 ElasticClient elasticClient new ElasticClient(new ConnectionSettings(new Uri("http://192.…

【项目日记(六)】第二层: 中心缓存的具体实现(下)

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:项目日记-高并发内存池⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你做项目   &#x1f51d;&#x1f51d; 开发环境: Visual Studio 2022 项目日…

螺旋遍历二维数组【leetcode】

给定一个二维数组 array&#xff0c;请返回「螺旋遍历」该数组的结果。 螺旋遍历&#xff1a;从左上角开始&#xff0c;按照 向右、向下、向左、向上 的顺序 依次 提取元素&#xff0c;然后再进入内部一层重复相同的步骤&#xff0c;直到提取完所有元素。 示例 1&#xff1a; …

深入理解二叉树:遍历、构建与性质探索的代码实现

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构冒险记 ✅C语言进阶之路 &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 文章目录 前言一、二叉树的存储结构二、二叉树链式结构的实现三、二叉树的前、中、后续遍历&…