AndEngineで簡単なゲームを作成しています。ボールを床に向けて落とし、床にぶつかるたびに短い衝突音を鳴らしたい。onUpdate()メソッドでは、衝突をチェックし、それに応じてサウンドを再生します。
サウンドの再生にはクラスSoundを使用します(AndEngineのSoundExampleのように)。サムスンギャラクシー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行目のコメントを削除)、プログラムはスムーズに動作します。
誰かが同じ問題に遭遇しますか?そして、遅れを取り除くための解決策がありますか?どうもありがとう!