从 Array 渲染文本,使用 LibGdx 将字符串存储在对象中

Rendering text from Array, with string stored in object using LibGdx

我无法显示文本(它们应该显示为滚动损坏数字)。如果我插入一个字符串文字作为 .draw 的参数,它就可以工作。像这样:

damage.fontObject.draw(game.batch,"testtest", x, y);

滚动也有效(在 SpriteBatch 绘图内容之外的另一个函数内)。

出于某种原因,它只是不接受我存储在对象内部的变量。显然我错过了一些东西。

在渲染中()

    game.batch.begin();     //render begin
    renderDamageText();
    game.batch.end();       //render end

在 renderDamageText() 中

public void renderDamageText(){

    for(int i = 0; i < damageText.size; i++){
        GameText damage = damageText.get(i);
        String showThis = damage.getText();
        float x =damage.x;
        float y =damage.y;
        damage.fontObject.draw(game.batch,showThis, x, y);
    }

}

游戏文本class

public class GameText {
public MyGdxGame game;
public String text;
public float x;
public float y;
public BitmapFont fontObject;
public float alpha = 1;
public float width;
public float height;

public GameText(String text, MyGdxGame game, BitmapFont font, float x, float y){
    this.x=x;
    this.y = y;
    fontObject = font;
    this.game = game;
    this.text = text;
    setText(game, text);
}

public String getText(){
    return text;
}

public void setText(MyGdxGame game, String text){
    game.textLayout.setText(fontObject,text);
    width= game.textLayout.width;
    height = game.textLayout.height;
    x-=width/2;
    y-=height/2;
}
}

当前的代码是 WiP 和混乱的,只是想让它工作然后清理它。

public static final String CHARACTERS_TO_MAP = "abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZ1234567890.,:";

^这就是答案,我忘记映射数字了;)