音乐在touch-LibGdx上无法正常播放

时间:2017-05-29 06:01:00

标签: java libgdx

我在屏幕上传播了一系列硬币。我想在触摸硬币时添加声音。

private Music coinSound;
show()中的

coinSound=assetManager.get(Assets.collectCoin);

在这里调用coinSound.play():

if (MyInputProcessor.isTouchDown) {
        touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
        game.camera.unproject(touchPos);
        for (int i = 0; i < coins.length; i++) {
            Rectangle textureBounds = new Rectangle(coins[i].getX(), coins[i].getY(), coins[i].getWidth(),coins[i].getHeight());

            if (textureBounds.contains(touchPos.x, touchPos.y) && !coins[i].isBreakBool()) {
                coinSound.play();
                coins[i].setTapBool(true);
            }
        }
        MyInputProcessor.isTouchDown = false;
}

现在声音正在播放,但不是所有的阵列元素。对于触摸一枚硬币,它每次都正确播放。我需要改变什么才能让它为每个触摸的硬币播放?

1 个答案:

答案 0 :(得分:2)

使用Sound代替Music

Sound effects是小型音频样本,通常不会超过几秒钟,可以播放特定的游戏事件,例如角色跳跃或射击枪。

AssetManager manager = new AssetManager();
manager.load("data/mysound.mp3", Sound.class);
manager.finishLoading();

AssetManager

获取声音
Sound sound = manager.get("data/mysound.mp3", Sound.class);
sound.play();

Music个实例很重,通常最多只能加载一个或两个。