使用标签libgdx更改短语中一个单词的颜色?

时间:2018-06-16 15:12:36

标签: libgdx scene2d

是否可以更改一个单词的颜色 在libgdx中使用Label的短语,我的想法在我的对话框中有一些像重要地方这样的重要词汇,或者名称与文本的其他部分有不同的颜色,以使它们脱颖而出。

1 个答案:

答案 0 :(得分:4)

我认为您不需要使用任何第三方工件,LibGDX已根据您的要求内置API。您也可以使用Label支持的color markup language

在BitmapFont上启用markupEnabled

font.getData().markupEnabled = true;

我有一些代码

public class MyGdxGame extends ApplicationAdapter {

    private Stage stage;
    private BitmapFont bitmapFont;

    @Override
    public void create () {

        stage=new Stage();
        bitmapFont=new BitmapFont(Gdx.files.internal("Roboto-Medium_24.fnt"));
        bitmapFont.getData().markupEnabled=true;
        bitmapFont.getRegion().getTexture().setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);

        Label label=new Label("Welcome to [BLUE]LibGDX, []Game development framework \n" +
                "\nPublish your games on [GREEN]Windows,[] [#00FFFF]Mac, []Linux, [#FFFF00]Android,[] [BLACK]iOS,[] BlackBerry and HTML5, all with the same code base. ",new Label.LabelStyle(bitmapFont, Color.WHITE));
        label.setPosition(20,340);
        label.setWrap(true);
        label.setWidth(500);
        stage.addActor(label);
    }

    @Override
    public void render () {
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        stage.act();
        stage.draw();
    }

    @Override
    public void dispose () {
        stage.dispose();
        bitmapFont.dispose();
    }
}

输出:

enter image description here