我在将行走声音循环到我的一个物体上时遇到问题。我的游戏在不同的状态下运行,我希望声音在“RUNNING”状态下循环,问题是 wav 听起来像锯子。一位 friend 给了我一个一般般的解决方案,在我的渲染类中创建了一个全局“long loopWalkSound = -1”后,使用了以下代码:
if (myWorld.isRunning()) {
if (loopWalkSound == -1) {
loopWalkSound = AssetLoader.walk.loop();
}
drawGame(runTime);
drawGameButtons();
drawScore();
}
使用此代码可以使 wav 声音正常,但当它开始播放时,它不会停止。我的意图是让 wav 仅在第一个条件的状态下播放,并在离开此状态时停止,或者在游戏声音关闭时根本不播放(我还没有针对这个特定的 wav 实现,只是为了给您一个想法) 。有人能帮忙解答一下吗?
将其包装在 boolean 检查中,这样您就不会在每一帧上重新启动它。下面,更改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;
}
我是一名优秀的程序员,十分优秀!