当两个精灵在发动机中碰撞时如何播放声音一次?

时间:2013-10-05 12:13:28

标签: android andengine

我正在玩球类游戏,每件事情都很好,现在我想在两个球相互碰撞时添加声音。

我尝试了以下代码,但声音正在重复。我想它只会在碰撞开始时播放一次&不保持碰撞。

在onCreateResources:

SoundFactory.setAssetBasePath("sfx/");
try {
     mSound = SoundFactory.createSoundFromAsset(getSoundManager(), this, "coll2.m4a");
    } catch (IOException e) {
    e.printStackTrace();
    }

并在 onAccelerationChanged (AccelerationData pAccelerationData)中添加以下代码

if (face.collidesWith(face1) || face.collidesWith(face2))
                        {
                            mSound.play();
                        }

1 个答案:

答案 0 :(得分:0)

您可以boolean检查精灵是否已经发生碰撞。代码看起来像这样.-

if (face.collidesWith(face1) || face.collidesWith(face2)) { 
    if (!colliding) {
        colliding = true;
        mSound.play(); 
    }
} else {
    colliding = false;
}