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

Posted 振长策而御宇内

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

以上是关于cocos2d-js 消耗/拥有数量居中显示的主要内容,如果未能解决你的问题,请参考以下文章

cocos2d-js 显示帧序列图中的一帧

cocos2d-js官方文档Bake功能使用说明

怎么查看hiveql执行时消耗的cpu核数

ARUNFastAPI&Vue 拥有无敌颜值且易用的全栈测试平台 第三弹——测试追踪

如何在 Azure 数据工厂内拥有不同数量客户的不同环境中使用相同的管道?

cocos2d-js去掉左下角的三行数字(帧数)