2013-10-05 29 views
0

嗯,我有球賽的工作,每一件事情工作正常,現在我想添加聲音,當兩個球相互碰撞。如何播放聲音一次當兩個精靈在andengine發生衝突?

我試着下面的代碼,但聲音正在repeated.I要碰撞時維持在碰撞開始&不是會只播放一次。

在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(); 
         } 

回答

0

你可以有一個boolean檢查精靈已經相撞。該代碼會看起來像this.-

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