Метка LibGDX не рисуется

Я пытаюсь нарисовать метку LibGDX на экране для экрана справки моей игры, но я не получаю никаких ошибок от JVM, но текст метки просто не рисуется.

Это мой класс 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();
    }

}

А это мой основной класс Game:

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, но метка не рисуется.


person Liam Potter    schedule 21.02.2014    source источник
comment
Вы нашли какое-то решение этой проблемы, у меня тоже похожая проблема. знак равно   -  person user959631    schedule 09.03.2014


Ответы (1)


Попробуйте изменить файл шрифта. Возможно, это как-то связано с установкой белого цвета. У меня были очень странные ошибки со шрифтами, и мне пришлось поиграть с выводом с сайта Angel Code версии 1.14, чтобы, наконец, все исправить. 1.13 у меня не работала.

person user2346305    schedule 21.02.2014