2014-02-21 38 views
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 
     } 
    } 
} 

这是一个屏幕截图帮助屏幕: Screenshot

正如您所看到的,该标签根本没有被绘制。所有的文件都在正确的位置,所有的代码似乎都是正确的,从我可以从LibGDX文档收集到的内容看起来是正确的,但标签不会绘制。

+0

您是否找到任何解决方案,我似乎也有类似的问题。 = [ – user959631

回答

0

尝试更改字体文件。也许这与将颜色设置为白色有关。我在字体上遇到了一些非常奇怪的错误,并且不得不使用Angel Code site版本1.14的输出来最终正确地使用它。 1.13没有为我工作。