欢迎光临散文网 会员登陆 & 注册

Cocos Creator中Action的使用

2021-10-23 13:50 作者:unity小能手  | 我要投稿

在Cocos Creator游戏开发中,动作特效是经常使用的,本文我们就一起来归纳总结下。

一、 Action简介

1: Action类是动作命令,创建Action后节点运行action就能执行Action的动作;

2: Action分为两类:

(1) 瞬时就完成的ActionInstant, (2) 要一段时间后才能完成ActionInterval;

3: 节点运行action: cc.Node runAction: ;

4: 移动:cc.moveTo, cc.moveBy  To: 目标 By: 变化

5: 旋转:cc.roateBy, cc.rotateTo,

6: 缩放:cc.scaleBy, cc.scaleTo,

7: 渐变:cc.fadeOut(淡出), cc.fadeIn(淡入):  cc.fadeTo();

8: 回调:cc.callFunc, cc.delayTime

9: 序列:cc.sequnce, cc.repeat, cc.repeatForever,spawn

10: 缓动:Action easing(缓动的方式):  加上缓动特效, cc.easeXXXXX查看文档设置自己想要的缓动对象

11: 停止运行action:stopAction;

12: 停止所有的action:stopAllActions;

二、 案例演示

 // 1: Action类是动作命令,创建Action后节点运行action就能执行Action的动作;

// 2: Action分为两类:

// (1) 瞬时就完成的ActionInstant, (2) 要一段时间后才能完成ActionInterval;

// 3: 节点运行action: cc.Node runAction: ;


// 4: 移动:cc.moveTo, cc.moveBy  To: 目标 By: 变化

//let mt : cc.Action = cc.moveTo(1, 300, 200);

//let mt : cc.Action = cc.moveTo(1, cc.v2(300, 200));

// this.node.runAction(mt);


// let mb : cc.Action = cc.moveBy(1, cc.v2(300, 200));

// this.node.runAction(mb);


// 5: 旋转:cc.roateBy, cc.rotateTo,

// let rb : cc.Action = cc.rotateBy(1, -45);

// this.node.runAction(rb);


// let rt : cc.Action = cc.rotateTo(1, 45);

// this.node.runAction(rt);


// 6: 缩放:cc.scaleBy, cc.scaleTo,

//this.node.scaleX = 2;

// 在原有基础之上缩放,scaleX = 2, scaleX = 2*2, scaleY = 1 * 2

// let sb : cc.Action = cc.scaleBy(1, 2, 2);   // 相对于节点原有缩放

// this.node.runAction(sb);


// 缩放到,某个比例,与原有缩放值无关

// let st : cc.Action = cc.scaleTo(1, 2, 2);

// this.node.runAction(st);


// 7: 渐变:cc.fadeOut(淡出), cc.fadeIn(淡入):  cc.fadeTo();

// let fout : cc.Action = cc.fadeOut(1);

// this.node.runAction(fout);


// this.node.opacity = 0;

// let fin : cc.Action = cc.fadeIn(1);

// this.node.runAction(fin);


// let ft : cc.Action = cc.fadeTo(1, 110);

// //this.node.runAction(ft);


// // 8: 回调:cc.callFunc, cc.delayTime

// let d : cc.Action = cc.delayTime(0.3);

// let self = this;

// let end_fun : cc.Action = cc.callFunc(function(){

//     console.log("节点已经变成半透明了!");

//     //this.node.removeFromPrarent();

//     self.node.removeFromParent();

//     console.log("节点被移出");

// });

// let seq : any = cc.sequence([ft, d, end_fun]);

// this.node.runAction(seq);


// 9: 序列:cc.sequnce, cc.repeat, cc.repeatForever

// let r : cc.Action = cc.rotateBy(0.3, 360);

// let rf : cc.Action = cc.repeatForever(r);

// this.node.runAction(rf);


//this.node.stopAction(rf);

//this.node.stopAllActions();


// 10: 缓动:Action easing(缓动的方式):  加上缓动特效, cc.easeXXXXX查看文档设置自己想要的缓动对象

// let m = cc.moveTo(2, cc.v2(300, 200)).easing(cc.easeBackOut());

// // 小写开头的为方法cc.easeBackOut(),方法后面有()

// this.node.runAction(m);


// 11: 停止运行action:stopAction;

// 12: 停止所有的action:stopAllActions;


// 一边移动一边缩放,sequence,序列,先后执行,同步

let m : cc.Action = cc.moveTo(2, cc.v2(300, 200));

let r : cc.Action = cc.rotateBy(4, 360);

//this.node.runAction(cc.sequence([m, r]));


// spawn,异步,多个Action可以同时执行

this.node.runAction(cc.spawn([m, r]));

三、 总结

1、类似于拍电影,首先导演要安排剧本Action,然后节点去执行剧本this.node.runAction。

2、停止演戏stopAction()和stopAllActions()。

3、常见剧本:移动moveTo、moveBy,旋转rotateXX、缩放scaleXX、渐变fadeXXX。

4、注意To是到某个值,By的相对变化量。

5、回调和延迟:cc.callFunc, cc.delayTime。

6、缓动:Action easing(缓动的方式):  加上缓动特效, cc.easeXXXXX查看文档设置自己想要的缓动对象。

7、同步和异步:sequence(动作先后顺序执行)、spawn(动作同时执行)。

8、重复循环执行:cc.repeat, cc.repeatForever(action)。




Cocos Creator中Action的使用的评论 (共 条)

分享到微博请遵守国家法律