cocos2d-js 消耗/拥有数量居中显示

对于消耗>拥有 和 消耗<=拥有有不同颜色处理且都需要显示的情况,增加居中显示的接口
注:以左侧widget初始坐标为中心,左侧锚点在最右,右侧锚点最左

CocosUtility.setupTwoWidgetMiddle = function(rootWidget, widgetInfo) {
    if(!rootWidget || !widgetInfo || !widgetInfo.name1 || !widgetInfo.name2) {
        return;
    }

    var pWidget1 = ccui.Helper.seekWidgetByName(rootWidget, widgetInfo.name1);
    var pWidget2 = ccui.Helper.seekWidgetByName(rootWidget, widgetInfo.name2);
    if(pWidget1 && pWidget2) {
        var step = widgetInfo.step || 0;
        pWidget1.midposx = (pWidget1.midposx != null) ? pWidget1.midposx : pWidget1.getPositionX();
        var posX = (widgetInfo.midPos != null) ? widgetInfo.midPos : pWidget1.midposx;
        var width1 = pWidget1.getContentSize().width;
        var width2 = pWidget2.getContentSize().width;
        pWidget1.setPositionX(posX-(width1+step+width2)/2+width1);
        pWidget2.setPositionX(posX+(width1+step+width2)/2-width2);
    }
};

调用:

CocosUtility.setupTwoWidgetMiddle(material, {name1: this.UI_TEXT_COSTHAVE, name2: this.UI_TEXT_COSTNEED});

另外一种多颜色穿插实现方式,把多个文字添加到一个layout上统一为一个整体:

LayoutConfig.creatreStringByConf = function() {
    if(arguments.length == 0) {
        return;
    }

    var array = arguments[0];
    if(array == null) {
        return;
    }

    var offset_x = 0;
    var offset_y = 0;
    var layout_height = 0;
    var layout = ccui.Layout.create();
    layout.setLayoutType(ccui.Layout.ABSOLUTE);

    var p_i = 0;
    for(var i = 0; i < array.length; i++) {
        var sub = array[i];

        var conf = arguments[(i + 1)];
        if(conf == null) {
            continue;
        }

        var text = ccui.Text.create();
        text.setAnchorPoint({x: 0.0, y: 0.5});
        text.setFontSize(conf.f_size);
        text.setFontName("common/font/DFGB_Y7_0.ttf");
        text.setString(sub);
        text.setColor(conf.c);
        text.disableEffect();

        layout.addChild(text);
        text.setPosition(cc.p(offset_x, text.getContentSize().height * 0.5));

        offset_x += text.getContentSize().width;
        layout_height = layout_height < text.getContentSize().height ? text.getContentSize().height : layout_height;

    }
    layout.setContentSize(cc.size(offset_x, layout_height));

    offset_x = 0;
    var child = layout.getChildren();
    for(var i in child) {
        var c = child[i];
        if(c) {
            c.setPositionX(offset_x);
            offset_x += child[i].getContentSize().width;
        }
    }
    layout.setContentSize(cc.size(offset_x, layout_height));

    return layout;
};

调用:

var array = ["今日免费:",times,"/"+timesMax+"次"];
LayoutConfig.creatreStringByConf(array, colorWhite, colorYellow, colorWhite)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值