creator 2.0.9 版本做的 。效果如下

不喜勿喷
代码如下:
//洗牌
xiPai: function () {
var self = this;
var cardNode = this.cardParent.children;
var len = cardNode.length;
var gap = 0.25;
var del = 0.1;
var posX = 0;
var posY = 0;
for (let index = cardNode.length - 1; index >= 0; index–) {
const node = cardNode[index];
node.stopAllActions();
var pos = node.position;
var oldLocal = node.zIndex;
var size = node.getBoundingBox();
var newLocal = Math.floor(Math.random() * len);
var newLocal2 = Math.floor(Math.random() * len);
var newLocal3 = Math.floor(Math.random() * len);
var newpos = cc.v2(-(gap * newLocal), (gap * newLocal));
var newpos2 = cc.v2(-(gap * newLocal2), (gap * newLocal2));
var newpos3 = cc.v2(-(gap * newLocal3), (gap * newLocal3));
var sizwX = (newLocal > oldLocal) ? -size.width * 0.5 : size.width * 0.5;
var sizwX2 = (newLocal2 > newLocal) ? size.width * 0.5 : -size.width * 0.5;
var sizwX3 = (newLocal3 > newLocal2) ? -size.width * 0.5 : size.width * 0.5;
var del1 = Math.random();
if (index == 0) {
del1 = 1;
}
var anim = cc.sequence(
cc.delayTime(del1),
cc.moveTo(del, cc.v2(sizwX, pos.y)),
cc.callFunc((pNode, local) => {
if (!pNode) return;
pNode.zIndex = local;
}, node, newLocal),
cc.moveTo(del, newpos),
//如果要多洗几次这里可以再加几段
cc.moveTo(del, cc.v2(sizwX2, pos.y)),
cc.callFunc((pNode, local) => {
if (!pNode) return;
pNode.zIndex = local;
}, node, newLocal2),
cc.moveTo(del, newpos2),
cc.moveTo(del, cc.v2(sizwX3, pos.y)),
cc.callFunc((pNode, local) => {
if (!pNode) return;
pNode.zIndex = local;
}, node, newLocal3),
cc.moveTo(del, newpos3),
cc.callFunc((pNode, data) => { //开奖
if (!self) return;
var index = data[0];
var posit = data[1];
pNode.zIndex = posit.y;
pNode.position = posit;
if (index <= 0) {
console.log("在这里处理发牌")
}
}, node, [index, cc.v2(posX, posY)])
)
node.runAction(anim)
posX -= 1;
posY += 1;
}
},