当前位置:首页 > 技术手札 > 正文内容

cocos creator的Action类整理

秋风渡红尘7年前 (2018-12-05)技术手札1818
文章来源:https://blog.csdn.net/cchgood/article/details/80930764

Action类

Action类是所有动作类型的基类 
并且Action有两个类别 
1、瞬时完成(ActionInstant) 
2、非瞬时完成,即到完成时需要一定的时间ActionIntervial

相关API 功能
cc.moveTo() 移动到目标位置
cc.moveBy() 移动指定的距离
cc.rotateTo() 旋转到目标角度
cc.rotateBy() 旋转到指定角度
cc.scaleTo() 缩放到目标大小
cc.scaleBy() 缩放到指定大小
cc.fadeIn() 淡入效果(透明度小于255才能体现效果)
cc.fadeOut() 淡出效果(透明度大于0才能体现效果)
cc.fadeTo() 修改透明度到目标值
cc.callFun() 执行回调函数
cc.delayTime() 动作延迟时间
cc.sequence() 顺序执行动作,创建的动作将按顺序依次运行
cc.repeat() 重复动作,可以按一定次数重复一个动
cc.repeatForever() 一直重复动作
Action.easeIn() 由慢到快的缓动对象
Action.easeOut() 由快到慢的缓动对象
stopAction() 停止并移除指定的动作
stopAllActions() 停止并且移除所有正在运行的动作列表。

以上的Action API均需要node.runAction()结合使用 
使用演示:

//move
var movTo=cc.moveTo(1,cc.p(100,100));
this.node.runAction(movTo);//第一个参数是移动到目标位置的时间
var movBy=cc.moveBy(1,cc.p(100,100));
this.node.runAction(movBy);
//rotate
var rTo=cc.rotateTo(1, 180);//第一个参数也是时间参数,将节点旋转180°
this.node.runAction(rTo);
var rBy=cc.rotateBy(1,180);//该节点再旋转180°
this.node.runAction(rBy);
//scale
var scTo = cc.scaleTo(1,2);//将节点缩放到2倍
this.node.runAction(scTo);
var scBy = cc.scaleBy(1,2);//将节点在原来的基础上再乘2
this.node.runAction(scBy);
//fade
var faO = cc.fadeOut(2);//2秒淡出
this.node.runAction(faO);
var faI = cc.fadeIn(2);//2秒淡入
this.node.opacity = 0;//调节透明度
this.node.runAction(faI);
var faTo = cc.fadeTo(1, 128);
this.node.runAction(faTo);
//callfun
var callF = cc.callFunc(function(){
    cc.log("function callback!!");
}.bind(this));
cc.node.runAction(callF);
//seq
var seqA = cc.seq([movTo,rTo,faO]);
cc.node.runAction(seqA);
//repeat
var rep = cc.repeat(seqA,2);
cc.node.runAction(rep);
var repF = cc.repeatForever(seqA);
cc.node.runAction(repF);
//回弹特效
var m = cc.moveTo(1, 100, 0).easing(cc.easeBackOut());
this.node.runAction(m);
//转动特效
var r = cc.rotateBy(3, 360).easing(cc.easeCubicActionOut());
var rf = cc.repeatForever(r);
this.node.runAction(rf);
//delay延时
var time = cc.delayTime(2);
var mov = cc.moveBy(2,cc.p(100,100));
var fun = cc.callFunc(function(){
    this.node.removeFromParent();
}.bind(this));
var seq1 = cc.sequence([time, mov, fun]);
this.node.runAction(seq);
//this.node.stopAllActions();  


扫描二维码推送至手机访问。

版权声明:本文由咿呀贝发布,如需转载请注明出处。

本文链接:https://yiyabei.cn/?id=34

标签: cocoscreator
分享给朋友:

相关文章

工作站T7810重装系统注意事项

工作站T7810重装系统注意事项

        dell的工作站T7810(Dell Precision Tower 7810)由于使用了磁盘阵列技术,在重装系统时发现会找不到任何驱动设备。...

局域网和外网多重网络同时使用

局域网和外网多重网络同时使用

要点: 1、ip、子网掩码都使用内网; 2、网关保证空白; 3、设置静态路由。 具体操作: 1、保证完成了上述1、2两条操作; 2、设置静态路由...

UBUNTU 安装owncloud

UBUNTU 安装owncloud

wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_16.04/Release.key -O Release.key apt-key...

QT编译的程序中文乱码

QT编译的程序中文乱码

在主程序加入 QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));...

ubuntu 安装mysql

ubuntu 安装mysql

sudo apt-get install mysql-server sudo apt isntall mysql-client sudo apt install libmysqlclient-dev 检测是否安装成功: sudo n...

caddy的文件目录

caddy的文件目录

通过查看 /usr/local/caddy vim /usr/local/caddy/Caddyfile 得知文件目录是在 /etc/v2ray/pages...