Example usage for com.badlogic.gdx.assets AssetManager load

List of usage examples for com.badlogic.gdx.assets AssetManager load

Introduction

In this page you can find the example usage for com.badlogic.gdx.assets AssetManager load.

Prototype

public synchronized void load(AssetDescriptor desc) 

Source Link

Document

Adds the given asset to the loading queue of the AssetManager.

Usage

From source file:com.badlogic.gdx.spriter.demo.SpriterDemoApp.java

private void changeSpriterFile(SpriterDemoFileHandle file) {

    AssetManager manager = file.manager;

    AssetDescriptor<SpriterData> desc = new AssetDescriptor<SpriterData>(file, SpriterData.class);

    try {//from  w  w  w  . j  a  v a 2  s. c  om
        manager.load(desc);
        manager.finishLoading();
    } catch (GdxRuntimeException ex) {
        popup("Loading error", ex.getLocalizedMessage());
        return;
    }

    SpriterData data = manager.get(desc);

    animators.clear();

    for (SpriterEntity entity : data.entities) {
        // Change toString method for charmaps
        Array<SpriterCharacterMap> replacements = new Array<SpriterCharacterMap>();
        for (SpriterCharacterMap map : entity.characterMaps) {
            SpriterCharacterMap newMap = new SpriterCharacterMap() {
                @Override
                public String toString() {
                    return id + ": " + name;
                }
            };
            newMap.id = map.id;
            newMap.name = map.name;
            newMap.maps = map.maps;
            replacements.add(newMap);
        }
        entity.characterMaps = replacements;

        SpriterAnimator animator = new SpriterAnimator(entity) {
            @Override
            public String toString() {
                SpriterEntity entity = getEntity();
                return entity.id + ": " + entity.name;
            }
        };
        animator.addAnimationListener(new SpriterAnimationAdapter() {
            @Override
            public void onEventTriggered(SpriterAnimator animator, String eventName) {
                popup("SpriterEvent", eventName);
            }

            @Override
            public void onAnimationFinished(SpriterAnimator animator, SpriterAnimation animation) {
                if (!animation.looping)
                    animator.play(animation);
            }
        });

        animators.add(animator);
    }

    fileChooser.setSelected(file);

    entityChooser.setItems(animators);

    if (animators.size > 0)
        changeAnimator(animators.first());
}

From source file:net.spookygames.gdx.sfx.demo.GdxSfxDemo.java

License:Open Source License

@Override
public void create() {

    /******************/
    /* Initialization */
    /******************/

    prefs = Gdx.app.getPreferences("GdxSfxDemo");

    batch = new SpriteBatch();

    Camera camera = new OrthographicCamera();

    FileHandleResolver resolver = new AbsoluteFileHandleResolver();
    assetManager = new AssetManager(resolver);
    assetManager.setLoader(SfxMusic.class, new SfxMusicLoader(resolver));

    skin = new Skin(Gdx.files.internal("skin/uiskin.json"));

    player = new SfxMusicPlayer();

    /************/
    /* Playlist */
    /************/

    final VerticalGroup playlistGroup = new VerticalGroup();
    playlistGroup.fill().left();/*w w w.j  av a  2 s.co m*/

    final Label invitationLabel = new Label("Add some music and let's have fun", skin, "subtitle");
    invitationLabel.setAlignment(Align.center);

    ScrollPane scrollablePlaylistTable = new ScrollPane(playlistGroup, skin);
    scrollablePlaylistTable.setScrollingDisabled(true, false);

    playlistGroup.addActor(invitationLabel);

    /********/
    /* File */
    /********/

    Button fileFinder = new TextButton("Add music", skin, "round");
    fileFinder.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {

            NativeFileChooserConfiguration conf = new NativeFileChooserConfiguration();
            conf.directory = Gdx.files.absolute(prefs.getString("last",
                    Gdx.files.isExternalStorageAvailable() ? Gdx.files.getExternalStoragePath()
                            : (Gdx.files.isLocalStorageAvailable() ? Gdx.files.getLocalStoragePath()
                                    : System.getProperty("user.home"))));
            conf.nameFilter = new FilenameFilter() {
                final String[] extensions = { "wav", "mp3", "ogg" };

                @Override
                public boolean accept(File dir, String name) {
                    int i = name.lastIndexOf('.');
                    if (i > 0 && i < name.length() - 1) {
                        String desiredExtension = name.substring(i + 1).toLowerCase(Locale.ENGLISH);
                        for (String extension : extensions) {
                            if (desiredExtension.equals(extension)) {
                                return true;
                            }
                        }
                    }
                    return false;
                }
            };
            conf.mimeFilter = "audio/*";
            conf.title = "Choose audio file";

            fileChooser.chooseFile(conf, new NativeFileChooserCallback() {
                @Override
                public void onFileChosen(FileHandle file) {
                    if (file == null)
                        return;

                    prefs.putString("last", file.parent().file().getAbsolutePath());
                    MusicParameters parameters = new MusicParameters();
                    parameters.title = file.name();
                    parameters.loadedCallback = new LoadedCallback() {
                        @Override
                        public void finishedLoading(AssetManager assetManager, String fileName,
                                @SuppressWarnings("rawtypes") Class type) {
                            final SfxMusic music = assetManager.get(fileName, SfxMusic.class);
                            if (player.addToPlaylist(music)) {
                                final MusicWidget widget = new MusicWidget(skin, music);
                                playlistGroup.addActor(widget);
                                widget.removeButton.addListener(new ChangeListener() {
                                    @Override
                                    public void changed(ChangeEvent event, Actor actor) {
                                        if (player.removeFromPlaylist(music))
                                            widget.remove();
                                    }
                                });
                            }
                        }
                    };

                    assetManager.load(new AssetDescriptor<SfxMusic>(file, SfxMusic.class, parameters));
                }

                @Override
                public void onCancellation() {
                }

                @Override
                public void onError(Exception exception) {
                }
            });
        }
    });

    /***********/
    /* Control */
    /***********/

    Table controlTable = new Table(skin);

    final Button playPauseButton = new Button(skin, "music");
    playPauseButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (playPauseButton.isChecked()) {
                player.play();
            } else {
                player.pause();
            }
        }
    });

    Button previousButton = new Button(skin, "left");
    previousButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            player.previous();
        }
    });

    Button nextButton = new Button(skin, "right");
    nextButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            player.next();
        }
    });

    final Button muteButton = new Button(skin, "sound");
    muteButton.setChecked(true);
    muteButton.addListener(new ChangeListener() {
        float formerVolume = player.getVolume();

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            float newVolume;
            if (muteButton.isChecked()) {
                // Un-mute
                newVolume = formerVolume;
            } else {
                // Mute
                formerVolume = player.getVolume();
                newVolume = 0f;
            }
            player.setVolume(newVolume);
        }
    });

    final Slider panSlider = new Slider(-1f, 1f, 0.02f, false, skin);
    panSlider.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            player.setPan(panSlider.getValue());
        }
    });
    panSlider.setValue(player.getPan());

    final Slider volumeSlider = new Slider(0f, 1f, 0.01f, false, skin);
    volumeSlider.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            muteButton.setChecked(true);
            player.setVolume(volumeSlider.getValue());
        }
    });
    volumeSlider.setValue(player.getVolume());

    final CheckBox shuffleCheckBox = new CheckBox("Shuffle", skin, "switch");
    shuffleCheckBox.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            player.setShuffleEnabled(shuffleCheckBox.isChecked());
        }
    });
    shuffleCheckBox.setChecked(player.isShuffleEnabled());

    final CheckBox repeatCheckBox = new CheckBox("Repeat", skin, "switch");
    repeatCheckBox.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            player.setRepeatEnabled(repeatCheckBox.isChecked());
        }
    });
    repeatCheckBox.setChecked(player.isRepeatEnabled());

    final Table fadeTable = new Table(skin);

    final Label fadeDurationLabel = new Label("0.0s", skin);
    final Slider fadeDurationSlider = new Slider(0.1f, 5f, 0.1f, false, skin);
    fadeDurationSlider.addListener(new ChangeListener() {
        String format = "%.1fs";

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            float value = fadeDurationSlider.getValue();
            player.setFadeDuration(value);
            fadeDurationLabel.setText(String.format(format, value));
        }
    });
    fadeDurationSlider.setValue(player.getFadeDuration());

    final SelectBox<String> fadeInterpolationSelectBox = new SelectBox<String>(skin);
    final ObjectMap<String, Interpolation> interpolations = new ObjectMap<String, Interpolation>();
    interpolations.put("Linear", Interpolation.linear);
    interpolations.put("Fade", Interpolation.fade);
    interpolations.put("Circle", Interpolation.circle);
    interpolations.put("Sine", Interpolation.sine);
    interpolations.put("Bounce", Interpolation.bounce);
    interpolations.put("Elastic", Interpolation.elastic);
    interpolations.put("Swing", Interpolation.swing);
    fadeInterpolationSelectBox.setItems(interpolations.keys().toArray());
    fadeInterpolationSelectBox.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            player.setFadeInterpolation(interpolations.get(fadeInterpolationSelectBox.getSelected()));
        }
    });

    fadeTable.defaults().left().pad(1f);
    fadeTable.row();
    fadeTable.add("Duration");
    fadeTable.add(fadeDurationSlider).expandX().fill();
    fadeTable.add(fadeDurationLabel).width(40);
    fadeTable.row();
    fadeTable.add("Interpolation");
    fadeTable.add(fadeInterpolationSelectBox).colspan(2).expandX().fill();

    final CheckBox fadeCheckBox = new CheckBox("Fade", skin, "switch");
    fadeCheckBox.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            boolean fade = fadeCheckBox.isChecked();
            player.setFadingEnabled(fade);
            fadeTable.setVisible(fade);
        }
    });
    fadeCheckBox.setChecked(player.isFadingEnabled());
    fadeTable.setVisible(player.isFadingEnabled());

    controlTable.defaults().padTop(4f);
    controlTable.row().colspan(3);
    controlTable.add(shuffleCheckBox).left();
    controlTable.row().colspan(3);
    controlTable.add(repeatCheckBox).left();
    controlTable.row().colspan(3);
    controlTable.add(fadeCheckBox).left();
    controlTable.row().colspan(3);
    controlTable.add(fadeTable);
    controlTable.row();
    controlTable.add("Pan");
    controlTable.add(panSlider).colspan(2);
    controlTable.row().colspan(3);
    controlTable.add().expand();
    controlTable.row();
    controlTable.add(previousButton).right();
    controlTable.add(playPauseButton);
    controlTable.add(nextButton).left();
    controlTable.row();
    controlTable.add("Volume");
    controlTable.add(volumeSlider).colspan(2);
    controlTable.row();
    controlTable.add("Mute");
    controlTable.add(muteButton).colspan(2).left();

    /*********/
    /* Debug */
    /*********/

    Label debugLabel = new Label("", skin) {
        @Override
        public void act(float delta) {
            setText(player.toString());
            super.act(delta);
        }
    };

    /***************/
    /* Stage setup */
    /***************/

    Table leftTable = new Table(skin);
    leftTable.row();
    leftTable.add(scrollablePlaylistTable).expand().fillX().top();
    leftTable.row();
    leftTable.add(debugLabel).expandX().left().padLeft(30f).padTop(8f);

    Table rightTable = new Table(skin);
    rightTable.row();
    rightTable.add(controlTable).expandY().fill();
    rightTable.row();
    rightTable.add(fileFinder).padTop(10f);

    Table rootTable = new Table(skin);
    rootTable.setFillParent(true);
    rootTable.row();
    rootTable.add(leftTable).expand().fill();
    rootTable.add(rightTable).expandY().fill().padTop(25f).padLeft(8f);

    stage = new Stage(new ScreenViewport(camera), batch);
    stage.addActor(rootTable);

    /*********/
    /* Input */
    /*********/

    Gdx.input.setInputProcessor(stage);
}