libGDX听起来像锯

时间:2014-11-23 13:00:57

标签: java libgdx

我在将一个步行声音循环到我的一个物体时遇到了问题。我的游戏运行在不同的状态,我希望声音循环状态" RUNNING",问题是wav听起来像锯。一位朋友给我一个如此解决方案,在我创建了一个全局" long loopWalkSound = -1"之后使用以下代码。在我的渲染类中:

if (myWorld.isRunning()) {
    if (loopWalkSound == -1) {
        loopWalkSound = AssetLoader.walk.loop();
    }
    drawGame(runTime);
    drawGameButtons();
    drawScore();
}

使用此代码使wav听起来正确,但它开始播放的那一刻并没有停止。我的意图是让wav只能在第一个条件状态下进行比赛,并在离开这个状态时停止,或者当比赛的声音关闭时根本不进行比赛(我没有为这个特定的实现wav但是只是为了给你一个想法)。有人可以帮忙搞清楚吗?

1 个答案:

答案 0 :(得分:0)

将其包裹在布尔检查中,这样就不会在每一帧上重新启动它。在下面,将wantWalkLoopToBePlaying更改为确定是否要播放声音的任何条件。例如:boolean wantWalkLoopToBePlaying = state == RUNNING;

if (!walkLoopIsPlaying && wantWalkLoopToBePlaying) {
    loopWalkSound = AssetLoader.walk.loop();
    if (loopWalkSound != -1) walkLoopIsPlaying = true;
} else if (walkLoopIsPlaying && !wantWalkLoopToBePlaying) {
    AssetLoader.walk.stop();
    walkLoopIsPlaying = false;
}