Показать сообщение отдельно
Старый 15.02.2011, 05:33   #4
Aikon
ПроЭктировщик
 
Регистрация: 12.02.2011
Сообщений: 131
Написано 23 полезных сообщений
(для 52 пользователей)
Ответ: Организация кода: вопросы хранения переменных

trion, спасибо. Воспользовался идеей, набросал небольшой менеджер для звуков Вроде неплохо получилось, прям не ожидал, что так просто будет.

Использование
Include "sound_manager.bb"
...
smLoadSound ("human_voice.mp3", "aaa")
smPlaySound ("aaa")
...
smDeleteAll()
sound_manager.bb
Type TSound
	Field Name$
	Field Sound
	Field Channel
	Field Volume
	Field Pitch
End Type

Function smSoundByName.TSound (name$)
	For snd.TSound = Each TSound
		If (snd\Name = name) Then Return snd
	Next
	DebugLog "Sound '" + name + "' is not exist!"
End Function
		
Function smLoadSound (filename$, name$, Volume = 100, Pitch = 0)
	snd.TSound = New TSound
	snd\Sound = LoadSound (filename)
	If (snd\Sound = -1) Then
		DebugLog "Sound '" + name + "' is not load!"
		Delete snd
	EndIf 
	snd\Name = name
End Function

Function smPlaySound (name$)
	snd.TSound = smSoundByName (name)
	If snd <> Null Then
		If Not ChannelPlaying (snd\Channel) Then snd\Channel = PlaySound (snd\Sound)
	Else
		DebugLog "Sound '" + name + "' not found!"
	EndIf 
End Function

Function smStopSound (name$)
	snd.TSound = smSoundByName (name)
	If snd <> Null Then
		StopChannel (snd\Channel)
	Else
		DebugLog "Sound '" + name + "' not found!"
	EndIf		
End Function

Function smDeleteAll ()
	For snd.TSound = Each TSound
		FreeSound snd\Sound
		Delete snd
	Next
End Function
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Aikon за это полезное сообщение:
LLI.T.A.L.K.E.R. (15.02.2011), trion (15.02.2011)