如何将 image/texture 添加到 libGDX 中的 table?
How do I add an image/texture to my table in libGDX?
我为一个简单的 HUD 制作了一个 table,它可以显示玩家的生命值、分数和当前武器。
武器应该显示为图像,但如果我尝试这样做,我的程序就会崩溃。如果我使用数字,它工作正常,所以我的代码没有错误。
public class Hud {
public Stage stage;
private Viewport viewport;
private int health;
private int score;
private Texture weaponImage;
Label healthLabel;
Label scoreLabel;
Label weaponLabel;
public Hud(SpriteBatch spriteBatch) {
health = 100;
score = 0;
weaponImage = new Texture(Gdx.files.internal("sword.png"));
viewport = new FitViewport(MyProject.V_HEIGHT, MyProject.V_HEIGHT, new OrthographicCamera());
stage = new Stage (viewport, spriteBatch);
Table table = new Table();
table.top();
table.setFillParent(true);
healthLabel = new Label(String.format("%03d", health), new Label.LabelStyle(new BitmapFont(), Color.WHITE));
scoreLabel = new Label(String.format("%03d", score), new Label.LabelStyle(new BitmapFont(), Color.WHITE));
//Here should be the code to display the image
table.add(healthLabel).expandX().padTop(10);
table.add(scoreLabel).expandX().padTop(10);
stage.addActor(table);
}
}
找到了操作方法:我创建了图像而不是纹理。
weaponImg = new Image(new Texture(Gdx.files.internal("sword.png")));
当我在 HUD 方法中添加以下代码时,它工作正常:
table.add(weaponImg).width(50).height(100);
我为一个简单的 HUD 制作了一个 table,它可以显示玩家的生命值、分数和当前武器。 武器应该显示为图像,但如果我尝试这样做,我的程序就会崩溃。如果我使用数字,它工作正常,所以我的代码没有错误。
public class Hud {
public Stage stage;
private Viewport viewport;
private int health;
private int score;
private Texture weaponImage;
Label healthLabel;
Label scoreLabel;
Label weaponLabel;
public Hud(SpriteBatch spriteBatch) {
health = 100;
score = 0;
weaponImage = new Texture(Gdx.files.internal("sword.png"));
viewport = new FitViewport(MyProject.V_HEIGHT, MyProject.V_HEIGHT, new OrthographicCamera());
stage = new Stage (viewport, spriteBatch);
Table table = new Table();
table.top();
table.setFillParent(true);
healthLabel = new Label(String.format("%03d", health), new Label.LabelStyle(new BitmapFont(), Color.WHITE));
scoreLabel = new Label(String.format("%03d", score), new Label.LabelStyle(new BitmapFont(), Color.WHITE));
//Here should be the code to display the image
table.add(healthLabel).expandX().padTop(10);
table.add(scoreLabel).expandX().padTop(10);
stage.addActor(table);
}
}
找到了操作方法:我创建了图像而不是纹理。
weaponImg = new Image(new Texture(Gdx.files.internal("sword.png")));
当我在 HUD 方法中添加以下代码时,它工作正常:
table.add(weaponImg).width(50).height(100);