分享一段洗牌代码

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;
    }
},
3赞

666,看起来很6的样子

mark

mark

mark

MARK

mark

mark

12345

mark

mark~~

mark