上一篇博客介绍了即时动作ActionInstant。与即时动作相对的是持续动作ActionInterval

顾名思义,持续动作就是须要一段时间来持续运行的动作,而且在有限时间内改变运行对象的一些属性。因此持续动作的静态生成函数。往往附带一个时间值。

持续动作ActionInterval类的子类例如以下:

一.简单的持续动作

能够看到,非常多持续动作类名都有后缀To或By

这两种后缀有什么差别呢?To表示动作终于达到的目标值,By表示动作的增量值。如:

auto  _moveTo = MoveTo::create(3.0,Vec2(900,600));//表示花3.0秒,按向量(900,600)移动一段距
auto _moveBy = MoveBy::create(3.0,Vec2(900,600))//表示花3.0秒,移动到坐标(900,600)

另外。除移动外。简单的持续动作还包含缩放、旋转、跳跃等等,举一些经常使用的样例:

//缩放动作
auto _scaleTo = ScaleTo::create(3.0,2)); //旋转动作
auto _rotateTo = RotateTo::create(3.0,60); //跳跃动作
//參数:1.运行时间 2.终点坐标 3.跳跃高度 4.跳跃次数
auto _jumpTo = JumpTo::create(3.0,Vec2(),200,4); //bezier曲线移动动作
//首先创建一个bezier曲线配置
ccBezierConfig ccb;
ccb.controlPoint_1 = Vec2(540,400);//第一个控制点
ccb.controlPoint_2 = Vec2(640,200);//第二个控制点
ccb.endPosition = Vec2(800, 100);//终点
//然后创建bezier动作
auto _bezierTo = BezierTo::create(3.0,ccb);
//运行动作
sprite->runAction(_bezierTo); //淡入淡出动作
//參数:1.时间 2.透明度
//精灵创建默认透明度255
auto _fadeTo = FadeTo::create(3.0,0); //延时动作
//一般用于动作间隔
auto _delayTime = DelayTime::create(3.0); //色彩渐变动作
//參数:1.时间 2.RGB
auto _tintTo = TintTo::create(3.0,255,0,0); //闪耀动作
//參数:1.时间 2.闪耀次数
auto _blink = Blink::create(3.0,10);

二.复合动作

除了以上简单的持续动作,我们在Cocos开发中还经常会用到复合动作,当同一个node有多个动作须要组合运行时经常会使用复合动作。复合动作有4种:

1.Sequence 按序列运行多个动作

2.Spawn 同一时候运行多个动作

3.Repeat反复运行几次

4.RepeatForever永远运行

注意。这4种复合动作里面的动作即能够包括简单的持续动作。也能够包括即时动作。还能够互相包括复合动作

下面是这四个复合动作的使用实例:

//先创建几个简单动作
//能够是即时动作。也能够是持续动作
auto _blink = Blink::create(3.0,10);
auto _place = Place::create(Vec2(100,100));
auto _scaleTo = ScaleTo::create(3.0,2)); //顺序运行一系列动作
//最后參数要为null,告诉方法已经没有动作了
auto _sequence = Sequence::create(_blink, _place,_bezierTo,NULL); //同一时候运行一系列动作
auto _spawn = Spawn::create(_blink, _place, _bezierTo, NULL); //反复运行某一动作几次
//參数:1.动作 2.次数
auto _repeat = Repeat::create(_blink,10); //永远反复运行某一动作
auto _repeatForever = RepeatForever::create(_blink);

这些动作Sequence、Spawn、Repeat和RepeatForever等复合动作通过node调用其runAction()方法就可以运行。

以上。

COCOS学习笔记--持续动作ActionInterval的更多相关文章

  1. COCOS学习笔记--即时动作ActionInstant

    Cocos引擎中的动作类的关系图例如以下: 能够看出,Action是继承自Ref类的,之前我的博客中也有讲过,Ref类是cocos2dx全部类的基类.动作类(Action)是全部动作的基类.它通过cr ...

  2. COCOS学习笔记--变速动作Speed和ActionEase

    变速动作和复合动作类似.也是一种特殊的动作,它能够把不论什么动作依照改变后的速度运行.变速动作与复合动作最大的差别就是复合动作仅仅是单纯的组合一系列动作,而变速的做在组合一系列动作后还要去改变动作的运 ...

  3. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  4. 重温JSP学习笔记--JSP动作标签

    上一篇笔记写的是jsp的三个指令九个内置对象,这篇随笔开始写jsp的动作标签,动作标签是由服务器(Tomcat)来解释执行,与java代码一样,都是在服务器端执行的,jsp动作标签有十几多个,这里只写 ...

  5. COCOS学习笔记--重力感应Acceleration

    Cocos2dx重力感应Acceleration,准确来说叫加速度计,加速度计能够感应设备上X.Y.Z轴方向上线性加速度的变化.事实上叫"重力感应"或"重力加速度计&qu ...

  6. COCOS学习笔记--Cocod2dx内存管理(三)-Coco2d-x内存执行原理

    通过上两篇博客.我们对Cocos引用计数和Ref类.PoolManager类以及AutoreleasePool类已有所了解,那么接下来就通过举栗子来进一步看看Coco2d-x内存执行原理是如何的. / ...

  7. cocos学习笔记:快速上手

    cc.Class({ //奇怪的语法风格,cc.class, extends: cc.Component, //扩展自cc.Component properties: { //类的属性设置 jumpH ...

  8. [读书]10g/11g编程艺术深入体现结构学习笔记(持续更新...)

    持续更新...) 第8章 1.在过程性循环中提交更新容易产生ora-01555:snapshot too old错误.P257 (这种情况我觉得应该是在高并发的情况下才会产生) 假设的一个场景是系统一 ...

  9. COCOS学习笔记--关于使用cocostudio打安卓包

    我在之前的博客里也写到过,如今cocos引擎提供了一键打包.很方便. 今天正好做个測试,想用引擎的一键打包弄个apk的安卓包.以下就简介一下详细过程和自己的一些理解: 先说一下项目背景,因为我的电脑是 ...

随机推荐

  1. oracle基础入门(一)

    一:Oracle的安装     我所知的Oracle的数据库有 10g,11g, 12g, 我们常用的是10g ,因为10g有scott的用户,而11和12现在还没有(哪位大神看到有问题可以指出哦), ...

  2. 菜鸟之路——Java并发(二)ThreadLocal

      一.什么是ThreadLocal   ThreadLocal,非常多地方叫做线程本地变量,也有些地方叫做线程本地存储.事实上意思几乎相同.非常多博客都这样说:ThreadLocal为解决多线程程序 ...

  3. log4j小结

    核心包: org.apache.log4j 三大组件 Loggers 日志操作 Appenders 日志的展现形式 Layouts 日志的展现格式 日志等级 TRACE DEBUG INFO WARN ...

  4. zoj 2317 Nice Patterns Strike Back(矩阵乘法)

    problemId=1317">http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=1317 给出一个n*m的矩阵( ...

  5. nagios,zabbix对照

    nagios/zabbix对照: nagios核心功能是监控报警.是一个轻量化的监控系统. 假设须要图标显示,须要添加图标显示插件(如pnp4nagios): 假设须要存入数据库,须要对应的插件(ND ...

  6. 7.cocos精灵创建和绘制

    创建Layer层的类 T2LayerSprite.h #pragma once #include "cocos2d.h" USING_NS_CC; class T2LayerSpr ...

  7. 洛谷P2251 质量检测

    题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am} ...

  8. 搭建 Docker 环境

  9. java(内部类)

    内部类: 一个类定义在另外一个类的内部就称作为内部类. 内部类的类别: 1.成员内部类: 2.局部内部类: 1.成员内部类: 成员内部类的访问方式: 方式一:在成员内部类的外侧提供一个方法创建内部类的 ...

  10. JS面向对象系列教程 — 对象的基本操作

    面向对象概述  面向对象(Object Oriented)简称OO,它是一种编程思维,用于指导我们如何应对各种复杂的开发场景. 这里说的对象(Object),意思就是事物,在面向对象的思维中,它将一 ...