我最初实现了直接从资产文件夹加载TextureAtlas的方法,但是
由于我不得不调用TextureAtlas的每个区域以获取要在动画中使用的帧,因此游戏变得非常迟钝(libgdx指出,将findregion用于TextureAtlas的速度为SLOW = lag)。所以我决定使用AssetLoader来最大程度地减少延迟,但是问题是
我找不到通过AssetManager加载TextureAtlas(.pack)的方法。我一直在

com.badlogic.gdx.utils.GdxRunTimeException:未加载资产:敌人测试包

我也一直尝试使用其他装载机,但是运行不顺利。.我找不到任何资源,所以我需要帮助:(
预先谢谢您!

在资产文件夹中,有“ enemytest.png”和“ enemytest.pack”文件。

这是一个游戏类(扩展游戏)

public class MyGdxGame extends Game {

    private TextureAtlas enemy;
    AssetManager manager;
    FileHandleResolver resolver = new InternalFileHandleResolver();

    @Override
    public void create () {

        manager = new AssetManager();
        manager.setLoader(TextureAtlas.class, new TextureAtlasLoader(new InternalFileHandleResolver()));
        load();

        setScreen(new GameScreen());
    }
    @Override
    public void render(){
        if(manager.update()){
            }

    }
    private void load(){

        manager.load("enemytest.pack", TextureAtlas.class);
        manager.finishLoading();
    }
}


这是GameScreen类。

public class GameScreen implements Screen{

    private GameStage stage;
    public Texture bg;

    public GameScreen() {
        stage = new GameStage();
    }
    @Override
    public void render(float delta) {
         //Clear the screen

        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
                //Update the stage
        stage.act(delta);
        stage.draw();

    }


这是我要从AssetManager获取TextureAtlas图像的地方。

public class Enemy extends GameActor{

    private Animation animation;
    private float stateTime;
    AssetManager manager = new AssetManager();
    public Enemy(Body body) {
        super(body);
        TextureAtlas textureAtlas = manager.get("enemytest.pack", TextureAtlas.class);
        TextureRegion[] animationFrames = new TextureRegion[getUserData().getTextureRegions().length];

最佳答案

其实,

我找到了解决方案。

我发现没有必要使用assetmanager。滞后的问题是由于

将1024px x 1024px的图像用于TextureAtlas和Animation。

我不得不降低它的分辨率。发现使用TextureAtlas,findRegion和Animation

毕竟效率很低。

通过assetmanager单独加载图像似乎是更好的动画解决方案。

当我提出问题时,我将发布另一个答案。

关于java - 通过AssetManager的Libgdx,TextureAtlas(.pack),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25863150/

10-10 17:15