【发布时间】:2012-06-08 03:51:17
【问题描述】:
我正在使用 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 行的注释),程序运行顺利。
有人遇到同样的问题吗?并有解决方案来摆脱滞后?非常感谢!
【问题讨论】:
-
我已经设法通过每次在新线程中调用 .play() 来克服这个问题。我想这不是最好的解决方案,但这消除了滞后。