【问题标题】:libgdx path to file when using assetManager.load();使用assetManager.load()时文件的libgdx路径;
【发布时间】:2014-07-29 08:27:01
【问题描述】:

我找到了这个解决方案来加载我的声音,但它总是写“文件未加载”。 eatSound.wav 位于资产文件夹中。我是否使用正确的路径来吃声音?我怎么知道正确的路径是什么?

private AssetManager assetManager;

public SoundManager(){
        assetManager = new AssetManager();
        assetManager.load("eatSound.wav",Sound.class);
}

public boolean startMusic() {
    if(assetManager.isLoaded("eatSound.wav")) {
   Sound sound= assetManager.get("eatSound.wav", Sound.class);
   sound.play();

    }else {
        System.out.println("not loaded yet");
        return false;
    }
    return true;
}

当我使用时

Sound sound = new Sound(Gdx.files.internal("eatSound.wav")); 
sound.play();

在我调用 play() 方法 10/20 次后它开始正常工作。所以我决定使用assetManager。但我不确定我是否为我的声音使用了正确的文件路径。

【问题讨论】:

标签: java android libgdx assets


【解决方案1】:

我认为问题在于加载资产可能需要一段时间......几毫秒,具体取决于资产的大小、设备资源等。所以,这一行......

assetManager.load("eatSound.wav",Sound.class);

可能会滞后一点,如果您尝试在初始化类后立即调用 startMusic() 方法,您很可能会遇到资产尚未完成加载的情况。这是一个例子......

SoundManager sm = new SoundManager();
sm.startMusic();

运行它可能永远不会播放声音,因为您没有足够的时间让资产完全加载。我建议在其他地方(高级)初始化 SoundManager 类,或者在初始化和调用 startMusic 之间添加延迟

【讨论】:

  • 我已经在我的游戏画面中初始化了 SoundManager,当我的角色与一些对象重叠时我使用 startMusic(),但每次我得到“尚未加载”。有什么方法可以检查我的声音的正确路径是什么?
【解决方案2】:

我的声音管理器没有工作,因为我没有在渲染方法中调用assetManager.update()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多