1
我试图在屏幕上为我的游戏的帮助屏幕绘制一个LibGDX标签,但是,我没有从JVM中得到任何错误,但是标签文本不会绘制。LibGDX Label Not Drawing
这是我HelpMenu类:
package metrovelox.screens;
//imports...
public class HelpMenu extends Screen {
private Stage stage;
public HelpMenu(Game game, String name) {
super(game, name);
}
@Override
public void init() {
Texture.setEnforcePotImages(false);
stage = new Stage();
Group background = new Group();
Group foreground = new Group();
background.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
foreground.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
stage.addActor(background);
stage.addActor(foreground);
background.addActor(ResourceLoader.loadImage("ui/Main Menu Background.jpg"));
TextButton back = new TextButton("back", GuiSkinRegistry.retrieve("Simple Buttons"));
back.setPosition(Utils.getScreenCenter().x - 186, Utils.getScreenCenter().y - 200);
Label text = new Label("Hello", GuiSkinRegistry.retrieve("Simple Label"));
text.setPosition(Utils.getScreenCenter().x, Utils.getScreenCenter().y);
back.addListener(new ClickListener(Buttons.LEFT) {
@Override
public void clicked(InputEvent event, float x, float y) {
getGame().setScreen(getGame().getScreen("Main Menu"));
}
});
foreground.addActor(back);
foreground.addActor(text);
Gdx.input.setInputProcessor(stage);
}
@Override
public void render(float delta) {
super.render(delta);
stage.act(delta);
stage.draw();
}
@Override
public void dispose() {
super.dispose();
stage.dispose();
}
}
这是我主要的游戏类:
package metrovelox.core;
import metrovelox.screens.HelpMenu;
import metrovelox.screens.MainMenu;
public class Metrovelox extends Game {
@Override
public void init() {
//Register skins, screens etc...
GuiSkinRegistry.register("Simple Buttons", ResourceLoader.loadSkin("MainMenu", ResourceLoader.loadTextureAtlas("ui/simple_buttons")));
GuiSkinRegistry.register("Simple Label", ResourceLoader.loadSkin("HelpMenu"));
addScreen(new MainMenu(this, "Main Menu"));
addScreen(new HelpMenu(this, "Help Menu"));
setScreen(getScreen("Main Menu"));
}
}
这是我的皮肤文件:
{
com.badlogic.gdx.graphics.Color: {
white: { hex: "ffffff" }
},
com.badlogic.gdx.graphics.g2d.BitmapFont: {
impact: {file: "../fonts/impact.fnt"}
},
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
default: {
font: impact, fontColor: white
}
}
}
这是一个屏幕截图帮助屏幕:
正如您所看到的,该标签根本没有被绘制。所有的文件都在正确的位置,所有的代码似乎都是正确的,从我可以从LibGDX文档收集到的内容看起来是正确的,但标签不会绘制。
您是否找到任何解决方案,我似乎也有类似的问题。 = [ – user959631