在论坛找了一遍,基本都是用move动作来实现的,但是参数调整不合适的话,效果看起来不好。
我从官方粒子里找到了一个震屏的动画,把参数整理出来,这样代码简单,效果有比较逼真,供大家参考。
使用方法:把这个函数放到要震动的节点脚本里,调用即可
// 震屏效果
// 参数:duration 震屏时间
shakeEffect: function (duration) {
this.node.runAction(
cc.repeatForever(
cc.sequence(
cc.moveTo(0.02, cc.p(5, 7)),
cc.moveTo(0.02, cc.p(-6, 7)),
cc.moveTo(0.02, cc.p(-13, 3)),
cc.moveTo(0.02, cc.p(3, -6)),
cc.moveTo(0.02, cc.p(-5, 5)),
cc.moveTo(0.02, cc.p(2, -8)),
cc.moveTo(0.02, cc.p(-8, -10)),
cc.moveTo(0.02, cc.p(3, 10)),
cc.moveTo(0.02, cc.p(0, 0))
)
)
);
setTimeout(() => {
this.node.stopAllActions();
this.node.setPosition(0,0);
}, duration*1000);
},




厉害厉害