DizzyAge по-русски

Русскоязычный форум для любителей игр на движке DizzyAge
Текущее время: 19 фев 2020, 09:01

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 13 ноя 2012, 15:13 
Не в сети
Site Admin

Зарегистрирован: 15 окт 2012, 00:51
Сообщения: 3673
Добавляем в файл 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 сообщение ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  

cron
Powered by Forumenko © 2006–2014
Русская поддержка phpBB