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 消耗/拥有数量居中显示的主要内容,如果未能解决你的问题,请参考以下文章
ARUNFastAPI&Vue 拥有无敌颜值且易用的全栈测试平台 第三弹——测试追踪