User Tag List

Страница 44 из 47 ПерваяПервая ... 4041424344454647 ПоследняяПоследняя
Показано с 431 по 440 из 470

Тема: Помощь по редактору Dizzy-AGE

  1. #431

    Регистрация
    10.03.2011
    Адрес
    Украина, г. Днепропетровск
    Сообщений
    892
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, а если в def.gs перенести, то конструкция будет правильной? (ну или приведи пример)

  2. #432

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,379
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Придумал вариант без всех этих наворотов:

    Добавляем в файл 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, и, соответствующие голоса (а их может быть несколько) выключаются.

    ---------- Post added at 15:08 ---------- Previous post was at 15:03 ----------

    Цитата Сообщение от yuriy Посмотреть сообщение
    Titus, а если в def.gs перенести, то конструкция будет правильной? (ну или приведи пример)
    Нет, неправильной, т.к. все файлы с расширением .gs равнозначны.

    ---------- Post added at 15:15 ---------- Previous post was at 15:08 ----------

    Цитата Сообщение от yuriy Посмотреть сообщение
    Ну и наверное последнее, это SampleVolume( percent ). Можно ли как-то эту команду привязать только к одному спецэффекту, а не ко всем происходящим в игре сразу?
    Как я понимаю, нельзя)

  3. #433

    Регистрация
    10.03.2011
    Адрес
    Украина, г. Днепропетровск
    Сообщений
    892
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    т.е. это будет верно?

    func ActionObject_3050 ( idx )
    {
    if(ObjGet(ObjFind(3050),O_STATUS)==0)
    {
    SamplePlay(13);
    ObjSet(ObjFind(3050),O_STATUS,1);
    }
    else
    {
    SampleStopByID(13);
    ObjSet(ObjFind(3050),O_STATUS,0);
    }
    }

    ---------- Post added at 13:18 ---------- Previous post was at 13:17 ----------

    Цитата Сообщение от Titus Посмотреть сообщение
    Как я понимаю, нельзя)
    Это очень не гибко.

  4. #434

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,379
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от yuriy Посмотреть сообщение
    т.е. это будет верно?
    Верно. Но все равно проверь.

    ---------- Post added at 15:28 ---------- Previous post was at 15:26 ----------

    Цитата Сообщение от yuriy Посмотреть сообщение
    Это очень не гибко.
    Сделай несколько звуков с разной громкостью. Благо, их количество не ограничено.

    ---------- Post added at 15:30 ---------- Previous post was at 15:28 ----------

    Кстати, учти, что проигрываемые в данный момент звуки, вроде бы не запоминаются в файле отгрузки. Выбери длинный звук и проверь.

  5. #435

    Регистрация
    10.03.2011
    Адрес
    Украина, г. Днепропетровск
    Сообщений
    892
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, да работает, работает как написано выше. Абы глюков не было.

    Не получится. Играет семпл, игрок выходит в другую комнату. Уменьшаться по громкости должен только один семпл (текущий). Если сделать разные..... стоп. Хотя есть варианты.... тока сейчас не получится проверить, это уже дома. Аудишн нужен.

    да, при записи игры (когда проигрывается сэмп) и после загрузки - сэмп уже не звучит. Но ничего не мешает вкл. проигрывание заново.

  6. #436

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,379
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от yuriy Посмотреть сообщение
    Titus, да работает, работает как написано выше. Абы глюков не было.
    Не будет, раз работает) В теории все правильно)

  7. #436
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #437

    Регистрация
    10.03.2011
    Адрес
    Украина, г. Днепропетровск
    Сообщений
    892
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, блин, это 3-4 трека огг лепить (пусть хоть по 1 метру), вес только растет. Вот это не гибкость. Вот чего нельзя типа SampleVolume (sample_id, percent) сделать? Чтобы sample_id был опциональным как loop ???

    Да и вообще движок очень куцый по сравнению с теми вещами что описаны в играх.

    ---------- Post added at 14:09 ---------- Previous post was at 14:00 ----------

    Titus, походу это

    func FX_Stop(fx)
    {
    if(fx==-1) return -1;
    while(true)
    {
    v = FX_Playing(fx);
    if(v==-1) return;
    SampleStop(v);
    }
    }

    делает то же самое, что и SampleStopByID

    Что скажешь?

  9. #438

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,379
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от yuriy Посмотреть сообщение
    делает то же самое, что и SampleStopByID

    Что скажешь?
    Я не знаю, откуда это ты взял, кроме того, у тебя не описана функция FX_Playing().

  10. #439

    Регистрация
    10.03.2011
    Адрес
    Украина, г. Днепропетровск
    Сообщений
    892
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    да, уже заметил

    func FX_Playing(fx)
    {
    if(fx==-1) return -1;
    for(v=0;v<SOUND_VOICES;v++)
    if(SamplePlaying(v)==fx) return v;
    return -1;
    }

    да в tos залез

  11. #440

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,379
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    FX_Playing(fx) - выдает номер голоса, по которому играет заданный эффект. Однако, если эффект играет в нескольких голосах одновременно, то будет выдан номер только одного из этих голосов. Так что фактически FX_Stop() делает тоже самое, что и у меня, только выключает одну копию звука, а у меня выключает все)

    ---------- Post added at 17:00 ---------- Previous post was at 16:50 ----------

    Единственное, моя функция не проверяет ошибки, но судя по всему это и не требуется.

Страница 44 из 47 ПерваяПервая ... 4041424344454647 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Dizzy-AGE: Summer Blast Dizzy
    от Titus в разделе Dizzy-AGE
    Ответов: 102
    Последнее: 31.05.2012, 16:15
  2. Dizzy-AGE: Treasure Tomb Dizzy
    от Titus в разделе Dizzy-AGE
    Ответов: 1
    Последнее: 12.11.2011, 02:10
  3. Dizzy-AGE: Illusion Island Dizzy
    от Titus в разделе Dizzy-AGE
    Ответов: 178
    Последнее: 27.10.2011, 22:03
  4. Dizzy-AGE: Diamond Mine Dizzy
    от Titus в разделе Игры
    Ответов: 2
    Последнее: 13.11.2008, 16:06
  5. где найти доки по редактору с VIRT'а?
    от TomCaT в разделе Музыка
    Ответов: 15
    Последнее: 09.11.2008, 22:18

Ваши права

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