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

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

简单介绍就这些啦,下面进入正题

动作系统 API

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

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

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

node.runAction(action)

// 效果

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

node.stopAction(action)

// 效果

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

node.stopAllActions()

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

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

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

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

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.moveBy(2, 100, 100) 的效果

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()    // 用于反转目标动作的时间轴

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

cc.show()      // 立即显示

cc.hide()        // 立即隐藏

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

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

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

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

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

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

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

  容器动作

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

  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 的数值越大,则动作的速率越快;数值为负值时,则不改变速率。

Cocos Creator 中的动作系统那些事儿的更多相关文章

  1. Cocos Creator 中 _worldMatrix 到底是什么(上)

    Cocos Creator 中 _worldMatrix 到底是什么(上) 1. (矩阵)Matrix是什么,有什么用 (矩阵)Matrix一个神奇的存在?在开发过程中对里边各项值的含义是不是抓耳挠腮 ...

  2. 在 Cocos Creator 中使用 Protobufjs(一)

    一. 环境准备 我一直在探索Cocos H5正确的开发姿势,目前做javascript项目已经离不开 nodejs.npm或grunt等脚手架工具了. 1.初始化package.json文件 npm ...

  3. Cocos Creator 中 _worldMatrix 到底是什么(中)

    Cocos Creator 中 _worldMatrix 到底是什么(中) 1. 中篇摘要 在上篇中主要做了三件事 简单表述了矩阵的基本知识,以及需要涉及到的三角函数知识 推导了图形变换中 位移 .旋 ...

  4. Cocos Creator中按钮组件数组的使用

    Cocos Creator游戏开发中经常使用到按钮,特别是大量按钮的情况,此时使用数组来管理这些按钮就显得更具通用性.我大致走了一下官方的示例,好像没有发现有这个小内容(或者有,但我却是没有找到),于 ...

  5. kbengine_js_plugins 在Cocos Creator中适配

    kbengine_js_plugins 改动(2017/7/6) 由于Cocos Creator使用严格模式的js,而原本的kbengine_js_plugins是非严格模式的,因此为了兼容和方 便C ...

  6. cocos creator 中的粒子效果

    途中的粒子效果,通过plist文件和png两个文件,创建一个粒子节点,将plist文件拖入到粒子节点的file属性中,然后给custom属性打钩,把png文件拖入到texture属性中即可.

  7. Cocos Creator中使用事件中心

    export class EventCenter { /** 监听数组 */ private listeners = {}; /** * 注册事件 * @param name 事件名称 * @para ...

  8. cocos creator中粒子效果的使用

    就如同上图的星星特效一样,在触碰时产生特效,但是并不销毁节点,因为要使用很多次,因此使用节点池NodePool保存起来的. 以下是使用粒子效果使要使用到的一些基本控制函数: 我的使用:

  9. 欢乐水杯(happy glass)中流体的一种实现!图文视频讲解 ! Cocos Creator!

    使用cocos creator v2.2.2 实现流体效果 ! 图文+视频讲解! 效果预览 实现原理 整体思路是参考论坛中的一个帖子 这款游戏中水的粘连效果在Construct3中利用图层很容易实现, ...

随机推荐

  1. HBuilderX 5+APP MUI 入门

    这一套东西是用来开发app的,可以用html.js什么的写app然后给你打包就能安装到手机上,也可以轻易跨端(需要使用vue,然而我还没有熟练). HBuilder:一个敲代码的软件,敲前端代码超级方 ...

  2. 学习Python编程的最好的几本书

    读书是汲取某个特定学科的知识以及更深入的理解该学科的最好的方式.在这个科技世界,通晓计算机系统各个不同的技术领域是至关重要的.其中最重要的内容之一便是计算机程序语言.现今,计算机中存在许多不同类型的程 ...

  3. GEF中TreeViewer的叶子节点展开

    /** * GEF树叶子节点的展开 * @param items */ private void expand(TreeItem[] items) { for (int i = 0; i < i ...

  4. 数组排序方法(join()、reverse()、sort())

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. C#第一章 第一个C#程序

    第一个C#程序 namespace 是C#中组织代码的方式,它的作用那个类似java中的包 using 在Java中作用如果导入其他包 应该是用import关键字而在C#中应使用using关键字来引用 ...

  6. 014_linux驱动之_信号符号名、描述和它们的信号值

    符号名 信号值 描述 是否符合POSIX SIGHUP 1 在控制终端上检测到挂断或控制线程死 亡 是 SIGINT 2 交互注意信号 是 SIGQUIT 3 交 互中止信号 是 SIGILL 4 检 ...

  7. Oracle 后台进程(三)LGWR进程

    一.LGWR进程简介 LGWR,是Log Writer的缩写,也是一种后台进程.主要负责将日志缓冲内容写到磁盘的在线重做日志文件或组中.DBWn将dirty块写到磁盘之前,所有与buffer修改相关的 ...

  8. Cogs 1345. [ZJOI2013] K大数查询(树套树)

    [ZJOI2013] K大数查询 /* 树套树写法. bzoj过不了. 可能有负数要离散吧. 线段树套线段树. 外层权值线段树,内层区间线段树维护标记. 对权值建一棵权值线段树. 某个点表示权值在某个 ...

  9. Fltiss项目的架构、包名的定义和类的划分

    这是项目的一览 首先Web根目录. 除了WEB-INF以外,还有css,img,js,lib目录,这四者都是静态资源. 由于客户端无法访问WEB-INF下的内容,所以将它们放置在了Web根目录下. 而 ...

  10. luogu2885

    P2885 [USACO07NOV]电话线Telephone Wire 给出若干棵树的高度,你可以进行一种操作:把某棵树增高h,花费为h*h. 操作完成后连线,两棵树间花费为高度差*定值c. 求两种花 ...