我正在用 AndEngine 创建一个简单的游戏。一个球落向地板,每当它与地板发生碰撞时,我都想播放一个简短的碰撞声。在方法 onUpdate() 中,我检查碰撞并相应地播放声音。
我使用 Sound 类来播放声音(如在 AndEngine 的 SoundExample 中)。在三星 Galaxy S2 上进行测试。
问题是播放声音时程序会滞后。它甚至会影响游戏的物理效果(有时当禁用声音时,球会反弹到高于最高点)。
这是代码:
public void onUpdate(float pSecondsElapsed) {
// mSound.play();
if (this.mSprite.collidesWith(ball.getSprite())) {
if (!colliding && mSound != null){ // play sound for first collision only
mSound.play();
colliding = true;
}
}
else{
colliding = false;
}
}
如果我删除 mSound.play() 或继续播放声音(删除第 2 行的注释),程序运行顺利。
有没有人遇到同样的问题?并有摆脱滞后的解决方案?非常感谢!