在使用 libGDX 开发的 2D 游戏中,制作玩家脚步声的最有效方法是什么,例如 -
if(player.isWalking) {
Timer.schedule(new Task(){
public void run(){
play(single_footstep);
}
}, 0.5f);
}
这段代码根本没有效果..实际上它没有用,声音很糟糕,无论你用多少延迟值玩,它仍然没有效果。
顺便说一句 - 我正在使用 libgdx 的 Timer 类,它与实用类非常相似。
也许您有更好的想法可以实现?我是 libGDX 的新手,所以我可能遗漏了一些东西。
提前致谢:)
最佳答案
该代码只是在您的绘制循环中吗?如果是这样,它将安排声音在每一帧播放,因此您每秒将开始播放 30 或 60 个声音(每个声音在您调用时都有延迟,但仍会同时播放)。您需要确保一旦您安排了任务,您就不会再次执行它,直到您准备好再次播放声音。
我会在没有安排的情况下进行。像这样:
if (player.isWalking){
mTimeToNextStep -= deltaTime;
if (mTimeToNextStep < 0){
play(single_footstep);
while (mTimeToNextStep < 0){ //in case of a really slow frame,
//make sure we don't fall too far behind
mTimeToNextStep += TIME_BETWEEN_STEP_SOUNDS;
}
}
} else {
mTimeToNextStep = 0; //or whatever delay you want for the first sound when
//you start walking
}
关于java - libGDX - 以有效的方式制造脚步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21002746/