2016-04-22 3 views
0

Итак, сейчас я играю в игру, в которой вы бежите и побеждаете врагов. Когда вы доберетесь до начальника и убьете его, у него есть звук смерти, но то, что происходит, это то, что звук смерти звучит искаженно. Я не знаю, что происходит, иногда лучше других, но все они искажены. MonsterA - мой босс. Монстр и здоровье врага - его здоровье. Вот мой код (это в методе Draw()):XNA SoundEffect Distortion

if (enemyHealth == 0) 
     { 

      sprite.PlayAnimation(deathAnimation); 
      if (spriteSet != "MonsterA") 
      { 
       killedSound.Play(); 
      } 

      if (spriteSet == "MonsterA") 
      { 

       bossKilledSound.Play(); 
      } 

       isDead = true; 
     } 
+0

Вы пытаетесь воспроизвести этот звук на каждом типе игрового цикла, возможно? Я предполагаю, что killSound - это SoundEffectInstance, да? – ManoDestra

+2

try 'if (enemyHealth == 0 && isDead == false') –

+0

Или проще: (if enemyHealth == 0 &&! IsDead) Или <= 0, чтобы быть уверенным, что вы попали в негативную ситуацию со здоровьем, если это возможно для ваш сценарий :) – ManoDestra

ответ

0

Поместите свой код в методе Update. Метод Draw - это умение (довольно много) только для рисования. Кроме того, мне это не очень понятно, но функция Draw не срабатывает каждый раз после Update. Я думаю, что это вид async, но watis для Update. Это туманная тема для меня, но попробуйте поместить этот код в Update вместо Draw. Если это не так, попробуйте запустить игру на другом ПК, который намного медленнее или намного быстрее, чем тот, который вы отлаживаете. Это должно привести вас к следующей подсказке, почему это происходит.

EDIT:
... при условии, что вы не начинать звук на каждом пожаре Draw/Update, ведьма не вероятно, потому, что из вашего объяснения, другие звуки хорошо играть, и только эта одна проблема.

Смежные вопросы