2014-02-21 4 views
1

내 게임의 도움말 화면에서 LibGDX 라벨을 화면에 그려하려고하는데 JVM에서 오류가 발생하지 않지만 라벨 텍스트가 그려지지 않습니다. LibGDX 라벨을 그리지 않음

내 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(); 
    } 

} 

그리고 이것은 내 주요 게임 클래스입니다 : 이것은의 스크린 샷이

{ 
    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 
     } 
    } 
} 

입니다 : 이것은 내 스킨 파일이

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")); 
    } 

} 

입니다 도움말 화면 : Screenshot

보시다시피 라벨이 전혀 그려지지 않습니다. 모든 파일이 올바른 위치에 있으며 모든 코드가 LibGDX 문서에서 수집 할 수있는 정확한 것으로 보이지만 레이블은 그려지지 않습니다.

+0

이 문제에 대한 해결책을 찾았습니까? 비슷한 문제가있는 것 같습니다. = [ – user959631

답변

0

글꼴 파일을 변경해보십시오. 아마도 그것은 흰색으로 색상을 설정하는 것과 관련이 있습니다. 글꼴에 이상한 오류가있어서 Angel Code site 버전 1.14의 출력물을 가지고 놀아야 만합니다. 1.13은 나를 위해 작동하지 않았다.

관련 문제