Как правильно использовать AsynchronousAssetLoader для загрузки объектов Animation <TextureRegion>? - PullRequest
0 голосов
/ 08 мая 2019
  1. В чем разница между AsynchronousAssetLoader и AssetLoader?
  2. Когда документация ссылается на ресурсы не-OpenGL и активы OpenGL в соответствующих методах loadasynch () и loadync (), чтоэто на самом деле означает?
  3. Как правильно добавить анимацию загрузки в мой менеджер ресурсов, если я использую объекты Animation из класса GitDecoder?На данный момент я просто загружаю анимацию прямо из GifDecoder и получаю к ней доступ прямо из игровой логики.
  4. Я читал, что использование GifDecoder нецелесообразно, и его следует использовать только для создания анимации, если вы в затруднении.Что такое «правильный» метод для использования анимации в libgdx?Это казалось довольно интуитивным для меня.Класс GitDecoder не работает?

DungeonAssetManager.java

public class DungeonAssetManager  {
    public AssetManager manager;
    public Animation<TextureRegion> playerAnimation;
    public Animation<TextureRegion> enemyAnimation;

    public DungeonAssetManager(){
        manager = new AssetManager();
    }

    public void queueAddDefaultAnimations(){
        manager.load(playerImage, Texture.class);
        manager.load(enemyImage, Texture.class);
        playerAnimation = GifDecoder.loadGIFAnimation(Animation.PlayMode.LOOP, Gdx.files.internal("Textures/Sprites/knight_run.gif").read());
        enemyAnimation = GifDecoder.loadGIFAnimation(Animation.PlayMode.LOOP, Gdx.files.internal("Textures/Sprites/demon_run.gif").read());
    }
...

loadingScreen.java

...
queueAddDefaultAnimations();
queueAddDefaultImages();
queueAddDefaultMusic();
queueAddDefaultSounds();
queueAddDefaultTextures();
parent.assMan.manager.finishLoading();

...

game.java

...
// sb = SpriteBatch
sb.draw(animation.getKeyFrame(elapsed), body.getPosition().x - ((.5f) * width), body.getPosition().y - ((.5f) * height), width, height);
...
...