动态创建 精灵组成的数字

newNode:function(type)

    {

        var node = new cc.Node()

        if(type && global.core.isFunction(type)) {

            return node.addComponent(type)

        }

        return node

    },

    // 创建一个由精灵组成的数字

    newNumber : function (number, numType = 1, forcenum = 0, offsetX = 0, is_center = false) {

        //返回整数数字node,左对齐;,numType 图片种类

        // forcenum 补齐长度,如:123, 补齐为6, 则为:000123

        var numStr = "" + number

        var length = numStr.length

        // 补齐

        if( forcenum != 0 && length < forcenum) {

            for(var i = 0; i < forcenum - length; i++) {

                numStr = "0" + numStr

            }

            length = numStr.length

        }

        var node = this.newNode()

        node.setAnchorPoint(0.5,0.5)

        var width = 0

        var height = 0

        var total_width = 0

        for(var i = 0; i < length; i++) {

            var s = numStr.charAt(i)

            var sprite = this.newNode(cc.Sprite)

            var name = "number/num_" + numType + "_" + s

            sprite.spriteFrame = global.ResMgr.getSpriteFrame(name, true)

            sprite.node.setAnchorPoint(0,0.5)

            sprite.node.setPosition(width, 0)

            

            sprite.node.parent = node

            sprite.node.tag = i

            var size = sprite.node.getContentSize()

            width = width + size.width + offsetX * 2

            var h = size.height

            if(height < h) {

                height = h

            }

            node.setContentSize(width,height)

            total_width += size.width + offsetX * 2

        }

        if(is_center) {

            var start_x = 0 - total_width / 2

            for (var index = 0; index < node.childrenCount; index++) {

                var child = node.children[index]

                child.x = start_x

                start_x += child.width + offsetX * 2

            }

        }

        node.setPosition(0, 0)

        return node

    },

猜你喜欢

转载自blog.csdn.net/Lost_the_wind/article/details/84254916