LibGDX TextureAtlas,无法加载button.pack

时间:2014-07-13 11:29:01

标签: java android libgdx

我在使用TexturePacker加载button.pack时遇到了一些问题。我真的无法找到问题所在。如果有人可以从我的GameScreen课程中看到它,请告诉我。非常感谢你。

public class GameScreen implements Screen {

    Stage stage;
    TextureAtlas buttonAtlas;
    TextButtonStyle buttonStyle;
    TextButton button;
    Skin skin;

    SpriteBatch batch;

    private GameWorld world;
    private GameRenderer renderer;
    private float runTime;

    // This is the constructor, not the class declaration
    public GameScreen() {

        float screenWidth = Gdx.graphics.getWidth();
        float screenHeight = Gdx.graphics.getHeight();
        float gameWidth = 544;
        float gameHeight = screenHeight / (screenWidth / gameWidth);

        world = new GameWorld();
        renderer = new GameRenderer(world, (int) gameHeight, (int) gameWidth);

        Gdx.input.setInputProcessor(new InputHandler(world));
    }

    @Override
    public void render(float delta) {
        runTime += delta;
        world.update(delta);
        renderer.render(runTime);

        Gdx.gl.glClearColor(1, 1, 1, 1);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

        stage.act();

        batch.begin();
        stage.draw();
        batch.end();
    }

    @Override
    public void resize(int width, int height) {
        System.out.println("GameScreen - resizing");
    }

    @Override
    public void show() {
        System.out.println("GameScreen - show called");

        stage = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(),
                true);
        skin = new Skin();
        buttonAtlas = new TextureAtlas("button.pack");
        skin.addRegions(buttonAtlas);

    }

    @Override
    public void hide() {
        System.out.println("GameScreen - hide called");
    }

    @Override
    public void pause() {
        System.out.println("GameScreen - pause called");
    }

    @Override
    public void resume() {
        System.out.println("GameScreen - resume called");
    }

    @Override
    public void dispose() {
        // Leave blank
    }
}

每次,无论我做出什么改变,它都会说"线程中的异常" LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException:找不到文件:button.pack(Internal)" 我检查了资产文件夹,button.pack和button.png在那里:/

1 个答案:

答案 0 :(得分:0)

将AssetManager用于您的游戏。 代码:

AssetManager am = new AssetManager();
am.load("buttons.pack", TextureAtlas.class);
am.finishLoading();
buttonAtlas = am.get("buttons.pack");

然后你可以使用你的地图册。 并且不要忘记将你的地图集放到game-android / assets目录。