我在使用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在那里:/
答案 0 :(得分:0)
将AssetManager用于您的游戏。 代码:
AssetManager am = new AssetManager();
am.load("buttons.pack", TextureAtlas.class);
am.finishLoading();
buttonAtlas = am.get("buttons.pack");
然后你可以使用你的地图册。 并且不要忘记将你的地图集放到game-android / assets目录。