Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Adiministrador
Mensagens : 1598
Reputação : 10
Data de inscrição : 25/08/2011
Idade : 24
Masculino
Localização : Salvador Bahia
Ver perfil do usuáriohttp://veloxzone2.blogspot.com/

Rodando musicas e sons em uma pasta externa

em 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

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:
[Você precisa estar registrado e conectado para ver este link.]
Download da engine no blog velox zone:
[Você precisa estar registrado e conectado para ver este link.]

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!


Última edição por Taigo Toushirou em Ter 17 Abr - 10:31:35, editado 3 vez(es)
avatar
Mensagens : 2678
Reputação : 18
Data de inscrição : 06/06/2011
Idade : 18
Masculino
Localização : Casa
Ver perfil do usuáriohttp://sonicmaker.forumeiros.com

Re: Rodando musicas e sons em uma pasta externa

em 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.
avatar
Adiministrador
Mensagens : 1598
Reputação : 10
Data de inscrição : 25/08/2011
Idade : 24
Masculino
Localização : Salvador Bahia
Ver perfil do usuáriohttp://veloxzone2.blogspot.com/

Re: Rodando musicas e sons em uma pasta externa

em 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.
avatar
Mensagens : 839
Reputação : 2
Data de inscrição : 04/09/2011
Idade : 21
Masculino
Localização : Vaco do tempo espaço perdido.
Ver perfil do usuário

Re: Rodando musicas e sons em uma pasta externa

em 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 Razz.

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??

______________________________________________________________________________________________
Lutar sempre, vencer talvez, desistir jamais.

By: Yuri The Hedgehog
avatar
Mensagens : 2678
Reputação : 18
Data de inscrição : 06/06/2011
Idade : 18
Masculino
Localização : Casa
Ver perfil do usuáriohttp://sonicmaker.forumeiros.com

Re: Rodando musicas e sons em uma pasta externa

em Ter 17 Abr - 19:55:29
ah consegui valeu Taigo
avatar
Adiministrador
Mensagens : 1598
Reputação : 10
Data de inscrição : 25/08/2011
Idade : 24
Masculino
Localização : Salvador Bahia
Ver perfil do usuáriohttp://veloxzone2.blogspot.com/

Re: Rodando musicas e sons em uma pasta externa

em 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 Razz.

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.
avatar
Mensagens : 331
Reputação : 11
Data de inscrição : 17/12/2011
Masculino
Ver perfil do usuário

Re: Rodando musicas e sons em uma pasta externa

em Sab 21 Abr - 12:58:17
+10 Rings pelo tutorial, Bem feito e muito simples Very Happy

______________________________________________________________________________________________
NEVER GIVE UP!






Trecho de Música da Semana:
''It's time to begin, isn't it?
I get a little bit bigger but then I'll admit
I'm just the same as I was
Now don't you understand
That I'm never changing who I am''
(Imagine Dragons - Its Time)

avatar
Mensagens : 2678
Reputação : 18
Data de inscrição : 06/06/2011
Idade : 18
Masculino
Localização : Casa
Ver perfil do usuáriohttp://sonicmaker.forumeiros.com

Re: Rodando musicas e sons em uma pasta externa

em Sab 21 Abr - 13:02:35
Nossa eu tinha esquecido de dar os rings '-'
avatar
Adiministrador
Mensagens : 1598
Reputação : 10
Data de inscrição : 25/08/2011
Idade : 24
Masculino
Localização : Salvador Bahia
Ver perfil do usuáriohttp://veloxzone2.blogspot.com/

Re: Rodando musicas e sons em uma pasta externa

em Sab 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!)
Conteúdo patrocinado

Re: Rodando musicas e sons em uma pasta externa

Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum