cc.Node.动作

Action动作

1.Action类是动作命令,我们创建action,然后节点运行action就能够执行Action的动作

2.Action分为两类;

(1)即时动作:       瞬时就完成    ActionInstant

(2)时间间隔动作:要一段时间才能完成ActionIntervial

3.runAction:节点运行这个action动作.

5.以下是常用action,TO和BY的区别是:

TO是目标.  BY是变化.

6.cc.MoveTo cc.MoveTo

MoveTo:移动到指定的坐标,移动到目标位置。

MoveBy:分别移动多少. 移动指定的距离.

返回的都是一个ActionIntervial时间间隔动作

    //第一个参数就是多久执行
    //第二个参数可以是一个数,那么他第三个参数就是y
    //如果他是一个二维向量 那么不需要第三个参数。
    //这样也是可以的 cc.moveTo(3,x,y)
    var mto = cc.moveTo(3,cc,p(100,100));
this.node.runAction(mto);

7.rotateTo和rotateBy

rotateTo之后他的rotate属性就是170,

因为他的意思就是旋转到170度,耗时2秒钟.

//旋转到170度
var rto = cc.rotateTo(2,170);
this.node.runAction(rto);

rotateBy旋转变化多少度

//在原来的基础上变化75度,可正可负
var rby = cc.rotateBy(1,75);
this.node.runAction(rto);

9.scaleTo和scaleBy 缩放

按节点的大小缩放指定的倍数

放大或缩小到某一比例

这里会发生由大大小的动作:因为你当前是2,我要缩放到1.1

所以他会缩小.

this.node.scale = 2;
var sto = cc.scaleTo(1,1.1);
this.node.runAction(sto);

按指定的倍数缩放节点大小

所就是说按当前的scale来乘以指定的倍数

如果说当前scale是1 那就是1.1*scale

比如你的scale是2 那就是缩放2.2倍

这里会发生放大的动画,因为他是2的1.1倍,就是2.2倍缩放.

this.node.scale = 2;
var sby = cc.scaleBy(1,1.1);
this.node.runAction(sby);

10.fadeOut淡入,fadeIn淡出  原理就是改变透明度;

fadeTo渐变到指定的透明度

比如一个游戏人物死亡了,过一会他的尸体就慢慢消失.

淡入

//先让透明度为0
this.node.opacity = 0;
var fin = cc.fadeIn(2);
this.node.runAction(fin);

淡出 就是透明度为0 实际上这个物体还是在的

var fout = cc.fadeOut(2);
this.node.runAction(fout);

指定透明度

var fout = cc.fadeTo(1,128);
this.node.runAction(fout);

11.callFunc 执行回调函数

这里会瞬间执行这个函数动作.

var func = cc.callFunc(function(){
console.log("call func actin!!!");
},this);
this.node.runAction(func);

12.sequence 顺序执行动作,创建的动作将按顺序依次运行

比如说我移动一个物体之后,又要隐藏这个物体.

这时候就有多个action,这个相当于动作数组,依次执行

var ac1 = cc.moveTo(1,1,100);
var ac2 = cc.fadeOut(0.5);
var seq = cc.sequence(ac1,ac2);
this.node.runAction(seq);

这时候回调函数在这里的作用就有用了,比如角色死亡渐渐

消失之后,透明度为0,但是物体还在,这时候就要用回调函数

来删除这个节点,或者做一些其他的内容.

var ac1 = cc.moveTo(1,1,100);
var ac2 = cc.fadeOut(0.5);
var cfunc = cc.callFunc(function(){
console.log("我是最后一个动作");
},this);
//将动作添加到队列
var seq = cc.sequence(ac1,ac2,cfunc);
this.node.runAction(seq);

13.一个节点可以同时运行多个action,

比如一边移动,一边慢慢隐藏

var ac1 = cc.moveTo(2,1,100);
var ac2 = cc.fadeOut(0.5);
this.node.runAction(ac1);
this.node.runAction(ac2);

14.重复执行一个动作   cc.repeat

参数1是重复的动作,参数2是重复的次数

比如说我要他放大缩小然后重复执行

var s1 = cc.scaleTo(0.8,1.1);
var s2 = cc.scaleTo(0.8,0.8);
var seq = cc.sequence([s1,s2]);
var rep = cc.repeat(seq,4);
this.node.runAction(rep);

15.永远重复执行一个动作 cc.repeatForever()

var s1 = cc.scaleTo(0.8,1.1);
var s2 = cc.scaleTo(0.8,0.8);
var seq = cc.sequence([s1,s2]);
var rep = cc.repeatForever(seq);
this.node.runAction(rep);

16.缓冲机制,缓动动作 easing

他和动作执行的时间是一致的.

回弹的效果,比如一个窗口打开,弹很大,然后又弹回一点

这些可以在API文档里找到.

测试一个常用的,一个界面飞出去弹出来.

cc.easeBackOut 快速移动超出目标,然后慢慢回到目标

var m = cc.moveTo(1,300,0).easing(cc.easeBackOut());
this.node.runAction(m);

17.stopAction停止运行指定的动作

var m = cc.rotateBy(3,360).easing(cc.easeCubicActionOut());
var rf = cc.repeatForever(m);
this.node.runAction(rf);
this.node.stopAction(rf);

18.stopAllActions停止运行所有动作

var m = cc.rotateBy(3,360).easing(cc.easeCubicActionOut());
var rf = cc.repeatForever(m);
this.node.runAction(rf);
this.node.stopAllActions();

19.延时 cc.delayTime

比如我们有一个特效出来了,让他3秒后删除

//延时3秒钟
var delay = cc.delayTime(3);
var fout = cc.fadeOut(0.5);
var end_func = cc.callFunc(function(){
console.log("我消失啦");
}.bind(this));
var seq = cc.sequence(delay,fout,end_func);
this.node.runAction(seq);

原文地址:http://blog.51cto.com/12158490/2064794

时间: 2024-11-10 16:14:26

cc.Node.动作的相关文章

cc.Node.场景树

场景树 1creator是由一个一个的游戏场景组成,通过代码逻辑来控制场景跳转. 2creator场景是一个树形结构 3父节点,子接地那 canvas可以当做根点击,然后再场景里添加精灵 UI等等节点 4cc.Node是整个场景数中的节点对象. 5每个节点只要是场景里面的, 任何一个节点都有一个cc.Node cc.Node属性 1 name:获取节点的名字 2 active:设置节点的可见性 3 position:相对坐标,相对应父节点的位置. 4 rotation:选中,数学是逆时针为正,c

cc.Node.事件

触摸事件 1.触摸事件的类型:START触摸启动,MOVED移动,ENDED弹起来,CANCEL取消; ENDED和CANCEL区别是ENDED物体内弹起来,CANCEL是在物体外范围弹起. 2.监听触摸事件,node.on(类型,callback,target(回调函数的this),[useCapture]) 3.触摸事件,node.on(类型,callback,target(回调函数的this),[useCapture])       //(1)监听触摸事件 向引擎底层注册回调函数     

cocos creator基础-cc.Node(三)坐标空间转换

cc.Vec2 1: cc.Vec2 二维向量坐标, 表结构{x: 120, y: 120}; cc.v2(x, y) 创建一个二维向量 cc.p() 创建一个二维向量(这个2.0被废弃了,用cc.v2替代) 2: cc.pSub: 向量相减 cc.pSub(v1, v2) 被废弃,用v1.sub(v2)替代 3: cc.pAdd: 向量相加; cc. cc.pAdd(v1, v2) 被废弃,用v1.add(v2)替代 4: cc.pLength: 向量长度; cc.pLength(dir)被废

Quick-Cocos2dx 3.3中关于cc.ScaleTo动作不能得到预期效果

在开发过程中需要做一个动画,使用的是一个宽高比为1:2的长方形图片,形态是一个框子:想使它按照1:1宽高比从指定大小放大到一定倍数. 最开始使用的方法: local frm = display.newSprite('#frm.png') --宽高比为1:2的长方形框子 local frmSize = frm:getContentSize() local iconw, iconh = 100, 100 local scale = 2.5 --预期放大倍数 local time = 0.2 --动画

Quick cocos2dx-Lua(V3.3R1)学习笔记(七)---- 让精灵执行不同的动作

上一篇我们实现了精灵动画,但是人物动起来了,位置还在中央,这怎么能行呢,除非他在玩太空步,一步两步一步两步 一步一步似爪牙似魔鬼的步伐......摩擦摩擦在这光滑的地上摩擦摩擦 我们打开安装路劲:\quick-3.3rc1\docs\api下面的transition.html,这次我们就用文档介绍的函数让进精灵执行动作 下面我们就让精灵从做走到右边 我们看transition.exectue(target, action, args)这个函数,中间就是我们创建的动作 function MainS

Quick-Cocos2d-x初学者游戏教程(四) --------------- 开发初探(添加背景,标题,动作,按钮)

Quick-Cocos2d-x初学者游戏教程(四) 前面我们已经大概的讲解完了Quick的框架和代码结构,接下来,本章开始我们将正式进入到游戏的开发.当然在开发的过程中,如果遇到值得一提的知识点和概念,我们还是会为大家详细讲解的. 哈哈,这章的内容我加它为——开发初探,因为我们将先来实现一些基础的内容.本章将实现的效果如下图所示: 菜单场景 从前面章节讲解的的知识点中,我们知道每个新建的 Quick 项目里都已经默认创建好了一个 mainScene 场景,所以下面我们将利用这个现成的场景,把它改

Cocos2d-x Lua Node与Node层级架构

Cocos2d-x Lua Node与Node层级架构 Cocos2d-x Lua采用层级(树形)结构管理场景.层.精灵.菜单.文本.地图和粒子系统等节点(Node)对象.一个场景包含了多个层,一个层又包含多个精灵.菜单.文本.地图和粒子系统等对象.层级结构中的节点可以是场景.层.精灵.菜单.文本.地图和粒子系统等任何对象.节点的层级结构如下图所示. 节点的层级结构 这些节点有一个共同的父类Node,Node类图如下图所示.Node类是Cocos2d-x Lua最为重要的根类,它是场景.层.精灵

Cocos2d-x 核心概念 - Node中的重要操作

作为跟类,Node有很多的重要的函数 local childNode = cc.Node:create() --创建节点 node:addChildNode(childNode,0,123) --创建子节点 ,第二个参数为Z轴绘制程序,第三个参数为标签 local node = node:getChildByTag() --通过标签查找子节点 node:removeChildByTag() --通过标签移除子节点,并停止该节点的所有动作 node:removeChild(childNode,tr

coco2d-js 节点的属性和动作

官网:http://cn.cocos2d-x.org/ 文档:http://cn.cocos2d-x.org/doc/jsdoc/symbols/cc.Node.html#onEnter http://www.cocos2d-x.org/reference/html5-js/V3.0/index.html ======================================================= /*属性*/if(!true){var sprite1 = new cc.Spr