gpt4 book ai didi

java - Libgdx、TextureAtlas(.pack) 通过 AssetManager

转载 作者:行者123 更新时间:2023-12-01 12:31:59 25 4
gpt4 key购买 nike

我最初实现了直接从资源文件夹加载TextureAtlas,但是游戏变得非常滞后,因为我必须调用TextureAtlas的每个区域来获取动画中要使用的帧(libgdx表示使用TextureAtlas的findregion是慢=滞后)。所以我决定使用 assetloader 来最小化延迟,但问题是我找不到通过 AssetManager 加载 TextureAtlas (.pack) 的方法。我不断收到

com.badlogic.gdx.utils.GdxRunTimeException: Assets 未加载:enemytest.pack

我也一直尝试使用其他加载器,但进展不顺利..我找不到任何资源,所以我需要帮助:(预先感谢您!

在我的 Assets 文件夹中,有“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 是没有必要的。滞后的问题是由于

使用 1024 像素 x 1024 像素图像进行纹理图集和动画。

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

毕竟效率很低。

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

当我说到重点时,我会发布另一个答案。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com