forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Проект (нужны советы). (http://forum.boolean.name/showthread.php?t=8391)

Fatalix3d 27.05.2009 09:15

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

Еще вопрос про звук при ходьбе и KeyDown звук накладывается на себя, а при KeyHit проигрывается всего раз не подскажите реализацию оного.

ABTOMAT 27.05.2009 15:04

Ответ: Поект (нужны советы).
 
Скрин кошерен! Тени - лайтмап? Или PSSM (если Xors?) Глоу какой? Ашадов? Фаст Екст? Свой? Дай побегать =)

Насчёт поочерёжных звуков я бы сделал так.
Массив с хендлами звуков, с моментами времени с последнего старта и интервал.

Код:

const N=10
Dim AmbientSnds[N,2]

AmbientSnds[0,0]=LoadSound(...) ; хендл
AmbientSnds[0,1]=10000 ; интервал

далее в обработке

Код:

For i=0 to N
    If AmbientSnds[i,0]<> 0 then ; Если звука нет то обрабатывать уже нечего, выходим
        If AmbientSnds[i,1]+AmbientSnds[i,2]<Millisecs() then
            PlaySound(AmbientSnds[i,0])
            AmbientSnds[i,2] = Millisecs()
        end if
    else
        exit
    end if
next


Цитата:

Еще вопрос про звук при ходьбе и KeyDown звук накладывается на себя
Потому что каждый тик (читай: примерно 60 раз в секунду) звук проигрывается заново (потому что нажата клавиша). Естественно получается какофония. Решение - те же интервалы. Перечитай мой код и попробуй подстроить его под ходьбу.
З.Ы. Ток не копипасть код, я его даже не проверял, в браузере набрал

cahekp 27.05.2009 18:24

Ответ: Поект (нужны советы).
 
Блин, классный скриншот! :)
И ты Blitz3D, говоришь, недавно начал изучать? Не верю! ;)
По поводу звуков - АВТОМАТ уже все сказал.

Baisangur 27.05.2009 22:09

Ответ: Поект (нужны советы).
 
Тени ФастЕкст стопудофф =)

SKA_DIMKA 28.05.2009 00:34

Ответ: Поект (нужны советы).
 
Да ну ребят это же элементарно на счет звука...

Цитата:

Global Ambient_chl, Ambient_snd
Ambient_snd=LoadSound("sound\Ambient.mp3")


If Not ChannelPlaying (Ambient_chl) Then
Ambient_chl=PlaySound (Ambient_snd)
EndIf
Вопщем если перевести то когда нет звука в канале "Ambient_chl" начинается воспроизводится звук "Ambient_snd" и без всяких интервалов ;)

так же можно это использовать и при нажатии клавиш к примеру ходьбы)

Damp 28.05.2009 09:13

Ответ: Поект (нужны советы).
 
Не, лучше циклить по времени. И чтоб луп имел плавное наростание громкости вначале и спад в конце, fade in/fade out, тогда будет незаметен переход.

ABTOMAT 28.05.2009 12:30

Ответ: Поект (нужны советы).
 
Да решений-то много... кстати если

If Not ChannelPlaying (Ambient_chl) Then
Ambient_chl=PlaySound (Ambient_snd)
EndIf

То например птицы будут щебетать не умолкая, а вдруг надо чтобы это происходило раз в N сек?

Fatalix3d 28.05.2009 15:52

Ответ: Поект (нужны советы).
 
Вот спасибо за советы! Тени FastEx конечно (отличные тени):) Будут вопросы буду писать в эту ветку дабы не засорять форум глупыми вопросами.

P.s "поект" - вот я грамотей!)

ABTOMAT 28.05.2009 17:31

Ответ: Проект (нужны советы).
 
Цитата:

P.s "поект" - вот я грамотей!)
исправил

Slepetc 31.05.2009 03:37

Ответ: Проект (нужны советы).
 
Знаю, что не в тему, но раз уж подняли тему, то птицы преимущественно со случайными перерывами.
Поэтому бы вот так изменил код:

Код:


const N=10
Dim AmbientSnds[N,3]

AmbientSnds[0,0]=LoadSound(...) ; хендл
AmbientSnds[0,1]=10000 ; к интервалу будет добавляться случайное число в пределах этого
AmbientSnds[0,1]=0 ;обязательный интервал

For i=0 to N
    If AmbientSnds[i,0]<> 0 then ; Если звука нет то обрабатывать уже нечего, выходим
        If rand(AmbientSnds[i,1])+AmbientSnds[i,3]+AmbientSnds[i,2]<Millisecs() then
            PlaySound(AmbientSnds[i,0])
            AmbientSnds[i,2] = Millisecs()
        end if
    else
        exit
    end if
next

З.Ы. не знаю, может где-то ошибки, давно не работал с Блитцем.

ken park 17.06.2009 13:21

Ответ: Проект (нужны советы).
 
подскажите о_О как сделать такое свечение с неба, как на скриншоте... меня это ооочень радует...

Dzirt 17.06.2009 14:02

Ответ: Проект (нужны советы).
 
Гмммм...тебе это еще рановато,но не мне решать)
1. Можеш подключить библиотеку Ashadow(http://andreyman.ucoz.ru) к Blitz3d
2. Можеш подключить библиотеку Fastext http://www.fastlibs.com к Blitz3d
3.Наконец зделать сам.Но скорее всего результат будет первым словом третего пункта.Но поробуй (http://www.forum.boolean.name/showthread.php?t=8445)

ken park 17.06.2009 17:05

Ответ: Проект (нужны советы).
 
а как при создании игры допустим, подключать ? или они сами как бе будут?

Dzirt 17.06.2009 17:28

Ответ: Проект (нужны советы).
 
Внутри прилагаются семплы и справки.По ним все можно розобрать.

ABTOMAT 17.06.2009 18:34

Ответ: Проект (нужны советы).
 
Лучше сначала изучи простой Blitz3D, а то в глюках утонешь.


Часовой пояс GMT +4, время: 18:37.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot