Android 当两个精灵在安德尼碰撞时,如何播放一次声音?

Android 当两个精灵在安德尼碰撞时,如何播放一次声音?,android,andengine,Android,Andengine,我在玩球类游戏,一切都很好,现在我想在两个球互相碰撞时添加声音 我尝试了以下代码,但声音正在重复。我希望在碰撞开始时只播放一次,而不是在碰撞保持时播放 在onCreateResources中: SoundFactory.setAssetBasePath("sfx/"); try { mSound = SoundFactory.createSoundFromAsset(getSoundManager(), this, "coll2.m4a"); } catch (IOExcept

我在玩球类游戏,一切都很好,现在我想在两个球互相碰撞时添加声音

我尝试了以下代码,但声音正在重复。我希望在碰撞开始时只播放一次,而不是在碰撞保持时播放

在onCreateResources中:

SoundFactory.setAssetBasePath("sfx/");
try {
     mSound = SoundFactory.createSoundFromAsset(getSoundManager(), this, "coll2.m4a");
    } catch (IOException e) {
    e.printStackTrace();
    }
并在以下代码中添加了加速更改(加速数据包加速数据)


您可以使用
布尔值检查精灵是否已经发生碰撞。代码看起来像这样-

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