DizzyAge по-русски
http://dizzyage.flybb.ru/

Остановка проигрывания заданного семпла по ID
http://dizzyage.flybb.ru/topic11.html
Страница 1 из 1

Автор:  Titus [ 13 ноя 2012, 15:13 ]
Заголовок сообщения:  Остановка проигрывания заданного семпла по ID

Добавляем в файл utils.gs следующую функцию:
Код:
/////////////////////////////////////////////////////////////////////////////////
//
//         Stop a voices, played specified sample
//
/////////////////////////////////////////////////////////////////////////////////
func SampleStopByID(sid)
{
   for (i=SOUND_VOICES-1; i>=0; i--)      // Перебираем все голоса от 0 до SOUND_VOICES (по умолчанию 16)
   {
      if (SamplePlaying(i) == sid)      // Если в данном голосе звучит семпл с ID = sid,
         SampleStop(i);         // то останавливаем его звучание
   }
}

Система проигрывания семплов на движке DizzyAge устроена следующим образом. Есть 16 голосов, по каждому из которых может играть свой семпл. Т.е. одновременно можно включить на проигрывание не более 16 перекрывающихся семплов. Если вы включили 17-й, а те 16 все еще играют, то будет ошибка.

Вышеприведенная функция работает очень просто. Перебираются все 16 голосов, и ищется, на каком из них играет семпл с заданным ID, и, соответствующие голоса (а их может быть несколько) выключаются.

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/