将BitmapFont和Texture放在Libgdx

时间:2017-11-02 09:43:32

标签: android libgdx

我使用BitmapFont(字体)和两个纹理(starIcon,clockIcon)在相同的Y位置(top - iconSize)绘制两个字符串。其中iconSize是图标的高度。但结果完全没了。见下图。我在这里做错了什么。

enter image description here

        batch.draw(starIcon, hmargin, top - iconSize, iconSize, iconSize);
        batch.draw(clockIcon, width*0.65f, top - iconSize,  iconSize, iconSize);
        font.draw(batch, scoreString, hmargin + iconSize + tmargin, top - iconSize);
        font.draw(batch, timeString, width*0.65f + tmargin + iconSize, top - iconSize);

2 个答案:

答案 0 :(得分:0)

font.draw(batch, scoreString, hmargin + iconSize + tmargin, top - iconSize+font.getCapHeight());

使用capHeight BitmapFont,这是从大多数大写字母顶部到基线的距离,可以使用上限高度来获取基线的位置。

答案 1 :(得分:0)

使用纹理时,原点是左下角。但!使用位图字体时,原点是左上角。 因此,如果您希望文本与底线上的图像匹配,请执行以下操作:

font.draw(batch, scoreString, hmargin + iconSize + tmargin, top - iconSize + textHeight));

如果您希望文本位于图像中间,请执行以下操作:

font.draw(batch, scoreString, hmargin + iconSize + tmargin, top - iconSize/2 + textHeight/2);

要找出bimmapfont-text的高度,我使用GlyphLayuot。