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

cocos creator的Action类整理

秋风渡红尘7年前 (2018-12-05)技术手札1342
文章来源: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();  


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

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

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

标签: cocoscreator
分享给朋友:

相关文章

QT在windows环境下QIcon不显示

QT在windows环境下QIcon不显示

QT设计窗口程序,在linux下QIcon能够正常显示图标,在windoows下无法显示图标。 经检查路径没有问题,最终解决方法是 先构建-˃执行qmake,然后在重新run。 图标终于正常显示,完毕!...

vmware虚拟机安装photoshop CC2014失败

vmware虚拟机安装photoshop CC2014失败

        今天在VMware虚拟机上安装photoshop CC2014,在进入安装进度时提示安装失败。 起初以为是安...

caddy的文件目录

caddy的文件目录

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

emlog修改为Https

emlog修改为Https

模板里面有写死的http,需要改成https header.php footer.php include/lib/function.base.php第73行 re...

cocos creator动态设置label导致F12调试undefined

cocos creator动态设置label导致F12调试undefined

新手上路,想动态添加 label[i].string = text[i]; 所以层级管理器只建立了一个空节点LabelParent; 想把label[i]设置setparent(LabelParen...