我目前正在使用libgdx开发Android游戏的对话窗口。此对话框窗口包含标签和按钮的集合,但也应包含图像。该图像表示“剩余健康指示符”,即具有指示玩家健康的符号的空指示符。该指标必须填充一个彩色矩形,表示剩余的健康状况(见下面的截图)。
为了在libgdx的对话框中渲染它,我必须绘制一个图像和一个彩色矩形(红色矩形表示实际的剩余健康量)。我知道对话框支持渲染图像,但我不知道如何先绘制矩形。
这是我到目前为止的代码:
public FuelFacilityDialog(GameWorld world, GuiComponent gui) {
super("Health check", gui.defaultSkin);
this.world = world;
this.gui = gui;
setModal(true);
setMovable(false);
setResizable(false);
Image healthIndicator = new Image();
Button button1 = new TextButton("heal", gui.defaultSkin);
Button button4 = new TextButton("Exit", gui.defaultSkin);
healthIndicator.setDrawable(new TextureRegionDrawable(AssetLoader.healthIndicatorV));
healthIndicator.setScaling(Scaling.fit);
setObject(button1, true);
setObject(button4, false);
Table imageTable = new Table();
Table buttonTable = new Table();
imageTable.add(healthIndicator).width(100).height(200);
buttonTable.add(button1).width(100).height(50).expandY();
this.getContentTable().padTop(20);
this.getContentTable().padBottom(20);
this.getContentTable().add(imageTable);
this.getContentTable().add(buttonTable).height(200);
getButtonTable().add(button2);
}
答案 0 :(得分:1)
我找到了问题的答案。为了绘制图像和形状,可以使用像素图。可以先创建一个绘制矩形的像素图。然后,您创建另一个绘制图像的像素图。然后可以通过将一个像素图绘制到另一个像素图上来组合像素图。
这是我用来构建一个包含矩形的图像的代码,该矩形表示实际的健康水平并在其上绘制指示图像。
private Image getHealthIndicatorImage() {
Image indicatorImage = new Image();
Pixmap healthIndicator = new Pixmap(AssetLoader.healthIndicatorV);
Pixmap healthLevel = new Pixmap(healthIndicator.getWidth(), healthIndicator.getHeight(), Format.RGBA8888);
healthLevel.setColor(Config.InstrumentPanel.healthInstrumentColor1);
healthLevel.fillRectangle(0, 0, 50, 50);
healthLevel.drawPixmap(healthIndicator, 0, 0);
indicatorImage.setDrawable(new TextureRegionDrawable(new TextureRegion(new Texture(healthLevel))));
indicatorImage.setScaling(Scaling.fit);
return indicatorImage;
}