是否可以使用JSON在LibGDX中的TextButtonStyle中使用两种字体?

时间:2015-05-08 14:19:43

标签: android json button libgdx scene2d

我想使用JSON在LibGDX中设置我的按钮。我有两种字体(carterone_red.fnt,carterone_green.fnt)。当按钮关闭时,它使用carterone_red字体,当按钮启动时,它将变为carterone_green.fnt。有可能吗?

以下代码无效。

谢谢, 文森特

 {
    com.badlogic.gdx.graphics.g2d.BitmapFont:{
    carterone-font: { file: fonts/carterone_green.fnt }
    carterone-font2: { file: fonts/carterone_red.fnt }
    },
    com.badlogic.gdx.graphics.Color: {
        green: { a: 1, b: 0, g: 1, r: 0 },
        white: { a: 1, b: 1, g: 1, r: 1 },
        red: { a: 1, b: 0, g: 0, r: 1 },
        black: { a: 1, b: 0, g: 0, r: 0 }
    },
    com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
        carterone: { down: button2,font: carterone2-font, up: button1, font: carterone-font, fontColor: white }  
    }
    }

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,那么你希望你的按钮是绿色字体,如果它是向上的,红色字体,如果它是向下的。 那么我看到的最简单的方法是:

  1. 创建一个BitmapFont,它应该是你的" carterone"字体,但在白色(!)颜色
  2. 然后在您的皮肤json文件中,您可以设置属性fontColor& downFontColor设置红色&相应的绿色。
  3. ==>最后你的skin.json看起来或多或少会像这样:

    {
    com.badlogic.gdx.graphics.g2d.BitmapFont:{
        carterone-font: { file: fonts/carterone_white.fnt }
    },
    com.badlogic.gdx.graphics.Color: {
        green: { a: 1, b: 0, g: 1, r: 0 },
        white: { a: 1, b: 1, g: 1, r: 1 },
        red: { a: 1, b: 0, g: 0, r: 1 },
        black: { a: 1, b: 0, g: 0, r: 0 }
    },
    com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
        carterone: { down: button2, up: button1, fontColor: green, downFontColor: red }  
    }
    }
    

答案 1 :(得分:0)

设置字体系列的属性是:

android:fontFamily="sans-serif" 

如果这是自定义字体,请将其放在以下目录中(资产,原始不起作用):

assets/fonts