Rodando musicas e sons em uma pasta externa
Ter 17 Abr - 0:33:58
Bem bem... Eu sou do tipo que gosta de trabalhar com programações mais avançadas e esse tutorial não é nada de nível médio ou básico é um avançado do qual você pode fazer um jogo longo e que não fique tão pesado para executar mais sim em tamanho de arquivo mas vamos continuar mantendo a velocidade do jogo em alta com esse tutorial.
Certamente iremos usar uma dll para fazer tal ação, pode ser a supersound? Sim pode é ela mesma que vamos usar! XD
Ok primeiro vamos para os códigos em scripts pois eles serão os ativadores da dll na pasta externa de sua engine!
Em script:
Da o nome de SS_Init
Da o nome de SS_LoadSound
Da o nome de SS_PlaySound
Da o nome de SS_LoopSound
Da o nome de SS_StopSound
Da o nome de SS_IsSoundPlaying
Da o nome de SS_IsSoundLooping
Nessa ordem!
Depois disso agora é só criar um objeto para rodar esses sons na pasta externa!
Cria um objeto com qualquer nome e no create coloca isso aqui:
Play sound
Loop sound
Stop
Se eu não estiver enganado é tudo assim mesmo que funciona! Eu acho! O_O
Download da dll:
Supersound dll
Download da engine no blog velox zone:
Download
A dll deve estar na mesma pasta do jogo os sons também caso queira criar uma pasta para deixar tudo mais organizado é só colocar no diretório que vai procurar o som, por exemplo:
Pasta_sounds_WAV/sound_1.wav
Assim fica mais organizado os arquivos externos de seu jogo.
Ela também roda mp3 e ogg se for usar um desses formatos é só por no diretório nome do arquivo mais extensão!
Se tiverem problemas me falem para eu corrigir o erro!
Eu editei a postagem achei um erro que fiz aqui mais agora ta tudo certo!
Certamente iremos usar uma dll para fazer tal ação, pode ser a supersound? Sim pode é ela mesma que vamos usar! XD
Ok primeiro vamos para os códigos em scripts pois eles serão os ativadores da dll na pasta externa de sua engine!
Em script:
Da o nome de SS_Init
- Código:
global.dll_SS_Init = external_define(
"supersound.dll",
"SS_Init",
dll_stdcall,
ty_string,
0);
global.dll_SS_LoadSound = external_define(
"supersound.dll",
"SS_LoadSound",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_PlaySound = external_define(
"supersound.dll",
"SS_PlaySound",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_LoopSound = external_define(
"supersound.dll",
"SS_LoopSound",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_StopSound = external_define(
"supersound.dll",
"SS_StopSound",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_SetSoundFreq = external_define(
"supersound.dll",
"SS_SetSoundFreq",
dll_stdcall,
ty_string,
2,
ty_string,
ty_string);
global.dll_SS_SetSoundPan = external_define(
"supersound.dll",
"SS_SetSoundPan",
dll_stdcall,
ty_string,
2,
ty_string,
ty_string);
global.dll_SS_SetSoundVol = external_define(
"supersound.dll",
"SS_SetSoundVol",
dll_stdcall,
ty_string,
2,
ty_string,
ty_string);
global.dll_SS_FreeSound = external_define(
"supersound.dll",
"SS_FreeSound",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_IsSoundPlaying = external_define(
"supersound.dll",
"SS_IsSoundPlaying",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_GetSoundPosition = external_define(
"supersound.dll",
"SS_GetSoundPosition",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_SetSoundPosition = external_define(
"supersound.dll",
"SS_SetSoundPosition",
dll_stdcall,
ty_string,
2,
ty_string,
ty_string);
global.dll_SS_GetSoundLength = external_define(
"supersound.dll",
"SS_GetSoundLength",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_GetSoundVol = external_define(
"supersound.dll",
"SS_GetSoundVol",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_GetSoundFreq = external_define(
"supersound.dll",
"SS_GetSoundFreq",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_GetSoundPan = external_define(
"supersound.dll",
"SS_GetSoundPan",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_IsSoundLooping = external_define(
"supersound.dll",
"SS_IsSoundLooping",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_IsSoundPaused = external_define(
"supersound.dll",
"SS_IsSoundPaused",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_ResumeSound = external_define(
"supersound.dll",
"SS_ResumeSound",
dll_stdcall,
ty_string,
1,
ty_string);
global.dll_SS_PauseSound = external_define(
"supersound.dll",
"SS_PauseSound",
dll_stdcall,
ty_string,
1,
ty_string);
//
if external_call(global.dll_SS_Init) = "No" then begin
show_error("Initialization of the sound system failed!",0);
end;
Da o nome de SS_LoadSound
- Código:
if is_real(argument0) then return "0"
return external_call(global.dll_SS_LoadSound,argument0);
Da o nome de SS_PlaySound
- Código:
if is_real(argument0) then return "0"
return external_call(global.dll_SS_PlaySound,argument0);
Da o nome de SS_LoopSound
- Código:
if is_real(argument0) then return "0"
return external_call(global.dll_SS_LoopSound,argument0);
Da o nome de SS_StopSound
- Código:
if is_real(argument0) then return "0"
return external_call(global.dll_SS_StopSound,argument0);
Da o nome de SS_IsSoundPlaying
- Código:
if is_real(argument0) then return -1;
return real(external_call(global.dll_SS_IsSoundPlaying,argument0));
Da o nome de SS_IsSoundLooping
- Código:
if is_real(argument0) then return -1;
return real(external_call(global.dll_SS_IsSoundLooping,argument0));
Nessa ordem!
Depois disso agora é só criar um objeto para rodar esses sons na pasta externa!
Cria um objeto com qualquer nome e no create coloca isso aqui:
Play sound
- Código:
SS_Init()
Musica = SS_LoadSound('JUMP.wav') // um diretório para achar o som na pasta externa de seu jogo
SS_PlaySound(Musica)// para dar um play caso for um efeito sonoro
Loop sound
- Código:
SS_Init()
Musica = SS_LoadSound('JUMP.wav') // um diretório para achar o som na pasta externa de seu jogo
SS_LoopSound(Musica)// para ficar repetindo a musica quando acabar
Stop
- Código:
SS_StopSound(Musica)
Se eu não estiver enganado é tudo assim mesmo que funciona! Eu acho! O_O
Download da dll:
Supersound dll
Download da engine no blog velox zone:
Download
A dll deve estar na mesma pasta do jogo os sons também caso queira criar uma pasta para deixar tudo mais organizado é só colocar no diretório que vai procurar o som, por exemplo:
Pasta_sounds_WAV/sound_1.wav
Assim fica mais organizado os arquivos externos de seu jogo.
Ela também roda mp3 e ogg se for usar um desses formatos é só por no diretório nome do arquivo mais extensão!
Se tiverem problemas me falem para eu corrigir o erro!
Eu editei a postagem achei um erro que fiz aqui mais agora ta tudo certo!
Re: Rodando musicas e sons em uma pasta externa
Ter 17 Abr - 11:35:43
Da esse erro
___________________________________________
ERROR in
action number 1
of Create Event
for object objMusica:
Error defining an external function.
___________________________________________
ERROR in
action number 1
of Create Event
for object objMusica:
Error defining an external function.
Re: Rodando musicas e sons em uma pasta externa
Ter 17 Abr - 12:18:33
É só checar se estar tudo em seus lugares códigos scripts, ver se a dll estar na sua devida pasta junto com a engine e a musica no formato wav ou ogg.
- Julio The Fox
- Mensagens : 839
Reputação : 2
Data de inscrição : 04/09/2011
Idade : 27
Localização : Vaco do tempo espaço perdido.
Re: Rodando musicas e sons em uma pasta externa
Ter 17 Abr - 19:53:37
Eu ia tentar fazer isso no meu jogo, mas já vi que não vou conseguir, por se tratar de um tuto avançado.
E não quero melecar a engine toda .
Mas tentei isso numa outra engine, e fiquei numa dúvida:
Tenho que fazer um objeto pra tocar cada som do jogo ou com um dá pra tocar todos??
E não quero melecar a engine toda .
Mas tentei isso numa outra engine, e fiquei numa dúvida:
Tenho que fazer um objeto pra tocar cada som do jogo ou com um dá pra tocar todos??
Re: Rodando musicas e sons em uma pasta externa
Qua 18 Abr - 2:50:22
Julio The Fox escreveu:Eu ia tentar fazer isso no meu jogo, mas já vi que não vou conseguir, por se tratar de um tuto avançado.
E não quero melecar a engine toda .
Mas tentei isso numa outra engine, e fiquei numa dúvida:
Tenho que fazer um objeto pra tocar cada som do jogo ou com um dá pra tocar todos??
Com apenas um você pode fazer isso! olha a enigne que fiz para tira todas as suas duvidas e saber como colocar em seu jogo.
- CompleTH
- Mensagens : 332
Reputação : 11
Data de inscrição : 17/12/2011
Re: Rodando musicas e sons em uma pasta externa
Sáb 21 Abr - 12:58:17
+10 Rings pelo tutorial, Bem feito e muito simples
Re: Rodando musicas e sons em uma pasta externa
Sáb 21 Abr - 13:02:35
Nossa eu tinha esquecido de dar os rings '-'
Re: Rodando musicas e sons em uma pasta externa
Sáb 21 Abr - 13:23:59
XD ainda bem que o comple lembro! (Não falei nada sobre os rings de proposito, só para ver até onde isso iria!)
Permissões neste sub-fórum
Não podes responder a tópicos