Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > BlitzMax > 2D-программирование

Ответ
 
Опции темы
Старый 21.08.2011, 10:13   #1
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Как можно проще управлять сразу несколькими звуками?

В общем есть несколько групп звуков. У каждой группы есть свой параметр громкости. Насколько я знаю для этих целей в BlitzMax есть каналы, только я не совсем понял как ими пользоваться. Не хочется менять громкость каждого звука в отдельности, в связи с чем прошу объяснить, как пользоваться каналами. Или они не для этих целей?
Заранее благодарен за ответы.
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Старый 21.08.2011, 17:04   #2
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,571
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Как можно проще управлять сразу несколькими звуками?

Писал большой ответ, но в момент отправки упала булка, схоронился тока код:
Type TSomeChannel
	Global MAP:Tmap = CreateMap()
	
	Field Channel:TChannel
	Field Sound:TSound
	Field MainVolume:String
	
	Function Load:TSomeChannel(Source:String,MainVolume:Float,label:String)
		Local somelist:TList = TList(MapValueForKey(MAP,label))
		If(somelist = Null)
			somelist = CreateList();
			MapInsert MAP,label,Somelist
		EndIf 
		
		Local S:TSomeChannel = New TSomeChannel
		S.Sound = LoadSound(Source)
		S.Channel = CueSound(S.Sound)
		S.MainVolume = MainVolume
		SetChannelVolume(S.Channel,MainVolume)
		ListAddLast Somelist,S
		Return S
	End Function 
	
	Function PlayRand(label:String)
		Local list:TList = MapValueForKey(MAP,label)
		If(list = Null) Return
		
		Local R:Int = Rand(1,CountList(list))
		Local K:Int = 0
		
		For Local S:TSomeChannel = EachIn list
			K:+1
			If(K = R)
				ResumeChannel S.Channel
				Exit 
			EndIf 
		Next 
	End Function 
End Type
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
xmarat (22.08.2011)
Старый 22.08.2011, 19:25   #3
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Как можно проще управлять сразу несколькими звуками?

Интересное решение Благодарю за помощь.
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Старый 23.08.2011, 18:07   #4
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Как можно проще управлять сразу несколькими звуками?

Начал разбираться. Возник вопрос: получается нужно для каждого звука отдельный канал создавать?
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Старый 23.08.2011, 19:54   #5
xmarat
Нуждающийся
 
Регистрация: 11.07.2011
Сообщений: 64
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Как можно проще управлять сразу несколькими звуками?

В общем разобрался. Еще раз спасибо
__________________
OS: Ubuntu Linux 11.04
CPU: Intel® Core™ 2 Quad Q9000 (2.0GHz, 1066MHz, 6Mb)
RAM: DDR2 SODIMM 4096 Мб
Video: NVIDIA® GeForce® GT240M 1024 Мб
(Offline)
 
Ответить с цитированием
Старый 06.10.2016, 18:15   #6
edgemza
AnyKey`щик
 
Регистрация: 04.10.2016
Сообщений: 18
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как можно проще управлять сразу несколькими звуками?

Я только собираюсь осваивать Макс.
Вопрос: можно ли одновременно проигрывать мелодию (например wav, ogg или mp3) и звуковые эффекты, например для стрельбы, взрывов и т.п. ?
(Offline)
 
Ответить с цитированием
Старый 06.10.2016, 21:40   #7
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 4,533
Написано 1,987 полезных сообщений
(для 4,745 пользователей)
Ответ: Как можно проще управлять сразу несколькими звуками?

Сообщение от edgemza Посмотреть сообщение
Я только собираюсь осваивать Макс.
Вопрос: можно ли одновременно проигрывать мелодию (например wav, ogg или mp3) и звуковые эффекты, например для стрельбы, взрывов и т.п. ?
Несомненно.
Зависит ещё от ограничений звуковой библиотеки. Но воспроизвести музыку и одновременно пару-тройку десятков звуков, без проблем. Актуально не только для BlitzMax.
(Offline)
 
Ответить с цитированием
Старый 07.10.2016, 05:25   #8
edgemza
AnyKey`щик
 
Регистрация: 04.10.2016
Сообщений: 18
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как можно проще управлять сразу несколькими звуками?

Сообщение от Arton Посмотреть сообщение
... воспроизвести музыку и одновременно пару-тройку десятков звуков, без проблем.
Так подсказали бы сразу - это делается стандартными средствами Блица или нужна другая библиотека? Если да, то какая??
(Offline)
 
Ответить с цитированием
Старый 07.10.2016, 11:58   #9
mingw
Нуждающийся
 
Аватар для mingw
 
Регистрация: 01.01.2016
Сообщений: 85
Написано 43 полезных сообщений
(для 82 пользователей)
Ответ: Как можно проще управлять сразу несколькими звуками?

создаешь отдельный канал для звуковых эффектов стрельбы и через него проигрываешь звуки.
(Offline)
 
Ответить с цитированием
Старый 07.10.2016, 12:11   #10
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,140
Написано 2,335 полезных сообщений
(для 6,492 пользователей)
Ответ: Как можно проще управлять сразу несколькими звуками?

Сообщение от edgemza Посмотреть сообщение
Так подсказали бы сразу - это делается стандартными средствами Блица или нужна другая библиотека? Если да, то какая??
Речь про Bmax, да?

Есть 2 стула: LoadSound и LoadMusic
Первый грузит звук полностью, второй играет длинные треки поточно. Больше тебе ничего не надо.

Не забудь к проекту заимпортить directsound и(или) freeaudio (модули из стандартной поставки)
Сколько в наличии каналов столько одновременно звуков и звучит.
Можешь произвести научный эксперимент.
У меня в своё время начинало "попёрдывать" при 500+ одновременноиграющих каналах.
Но это индивидуально для разных систем.
__________________
Retry, Abort, Ignore? █
AMD Ryzen 7 1700X x8 3.4Ghz; 16Gb ram; Radeon RX 570
AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 19:47.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com