Curso completo de DarkGdk
Gameprog - Escola de programação de jogos digitais
Contato: gameprog.br@gmail.com
Fase 7.3

index << >>



07.3 Efeitos sonoros

07.2 som	
Segue abaixo o elenco de funções básicas para tratamento de som:

dbLoadSound( sArquivo, nSom)
void dbLoadSound ( char* szFilename, int iSound )	
Essa função carrega um arquivo de som no formato wav e identifica-o
com o handle nSom pelo qual o som vai sofrer manipulações posteriores.	

Ex.: dbLoadSound ("c:\\gameprog\\gdkmedia\\som\\amostra_som.wav",1);

---------------------------------------------------------------------------
dbDeleteSound (nSom)
void dbDeleteSound ( int iSound )	
Essa função deleta o som especificado nSom.

Ex.: dbDeleteSound(1);


---------------------------------------------------------------------------
dbPlaySound (nSom)
void dbPlaySound ( int iSound )	
Essa função toca o som especificado.

Ex.: dbPlaySound(1); 

---------------------------------------------------------------------------
dbLoopSound (nSom)
void dbLoopSound ( int iSound )	
Essa função configura o som especificado para tocar continuamente.

Ex.: dbLoopSound(1); 

---------------------------------------------------------------------------
dbStopSound (nSom)
void dbStopSound ( int iSound )	
Essa função pára o som especificado.

Ex.: dbStopSound(1); 

---------------------------------------------------------------------------
dbPauseSound (nSom)
void dbPauseSound ( int iSound )	
Pausa o som especificado.

Ex.: dbPauseSound(1); 

---------------------------------------------------------------------------
dbResumeSound ( nSom)
void dbResumeSound ( int iSound )	
Continua com a execução do som especificado que foi pausado previamente.

Ex.: dbResumeSound(1); 

---------------------------------------------------------------------------
dbSetSoundVolume (nSom, nVolume)
void dbSetSoundVolume ( int iSound, int iVolume )	
Configura o volume (nVolume) de som do som especificado (nSom);

Ex.: dbSetSoundVolume (1,70);

---------------------------------------------------------------------------
dbSoundExist ( nSom)
int dbSoundExist ( int iSound )	
Retorna 1 caso o som especificado exista.

Ex.: int nsts = dbSoundExist(1); 

---------------------------------------------------------------------------
dbSoundPlaying (nSom)
int dbSoundPlaying ( int iSound )	
Retorna 1 caso o som especificado esteja tocando.

Ex.: int nsts = dbSoundPlaying(1); 


---------------------------------------------------------------------------
dbSoundLooping (nSom)
int dbSoundLooping ( int iSound )	
Retorna 1 caso o som especificado esteja configurado para tocar continuamente.

Ex.: int nsts = dbSoundLooping(1); 

---------------------------------------------------------------------------
dbSoundPaused (nSom)
int dbSoundPaused ( int iSound )	
Retorna 1 caso o som especificado esteja pausado.

Ex.: int nsts = dbSoundPaused(1); 

---------------------------------------------------------------------------
nVolume = dbSoundVolume (nSom)
int dbSoundVolume ( int iSound )	
Retorna o volume ( nVolume) configurado para o som especificado.

Ex.: int nvolume = dbSoundVolume(1); 

Segue abaixo programa exemplo:


// tst_Sound.cpp // Esse programa mostra como usar as funções de som #include "DarkGDK.h" // Protótipo das funções void initsys(); // inicializa o sistema void tst_som(); // Testa funções de som void menu(); // Mostra um menu de opções na tela // Cores const int nPreto = 0; const int nBranco = 0xFFFFFF; const int nAzul = 0x0000FF; int terminar_app = 0; // ---------------------------------------------------------------------------- void DarkGDK ( void ) { // Começo da aplicação DarkGdk initsys(); // Carrega um som para teste dbLoadSound ("c:\\gameprog\\gdkmedia\\som\\amostra_som.wav",1); while ( LoopGDK ( ) ) { menu(); tst_som(); if (terminar_app == 1) return; dbSync ( ); } // fim do while return; } // fim da função: DarkGDK // ---------------------------------------------------------------------------- void initsys() { // Esta função inicializa o sistema dbSyncOn( ); dbCLS(nBranco); dbSetWindowTitle("tst_som.cpp"); dbSetTextOpaque(); } // fim da função: initsys() // ---------------------------------------------------------------------------- void menu() { // Variáveis de trabalho para mostrar texto int xpos = 260; int ypos = 10; int coluna = xpos; int linha = ypos; int espaco_entrelinhas = 20; int ncx = 0; // Nossa lista de opções char *slista[8] = {"1- dbPlaySound(1)", "4- dbStopSound(1)", "q- para sair ou botao direito do mouse", "6- dbLoopSound(1)", "8- dbPauseSound(1)", "9- dbResumeSound(1)", "a- dbSetSoundVolume(1,70)", "--------------------------------------"}; // fim da lista // Mostre a lista dbInk (nAzul, nBranco); for (ncx = 0; ncx < 8; ncx++) { linha = ypos + ( ncx * espaco_entrelinhas ); dbText (coluna, linha, slista[ncx]); } // fim do for(ncx) } // menu().end // ---------------------------------------------------------------------------- void tst_som() { // Execute enquanto não for pressionado "q" ou o botão direito do mouse while (dbMouseClick() != 2) { char *tecla = dbInKey(); if (!strcmp(tecla,"1")) dbPlaySound (1); if (!strcmp(tecla,"4")) dbStopSound (1); if (!strcmp(tecla,"q"))break; if (!strcmp(tecla,"6")) dbLoopSound (1); if (!strcmp(tecla,"8")) dbPauseSound(1); if (!strcmp(tecla,"9")) dbResumeSound(1); if (!strcmp(tecla,"a")) dbSetSoundVolume(1,70); dbInk (nPreto, nBranco); dbText (10,10,dbStr (dbSoundExist(1) )); dbText (50,10, "dbSoundExist(1)" ); dbText (10,30,dbStr (dbSoundPlaying(1) )); dbText (50,30, "dbSoundPlaying(1)" ); dbText (10,50,dbStr (dbSoundLooping(1) )); dbText (50,50, "dbSoundLooping(1)" ); dbText (10,70,dbStr (dbSoundPaused(1) )); dbText (50,70, "dbSoundPaused(1)" ); dbText (10,90, " "); // Limpe o espaço antes de imprimir dbText (10,90,dbStr (dbSoundVolume(1) )); dbText (50,90, "dbSoundVolume(1)" ); dbSync(); } // endwhile // Delete os arquivos utilizados if (dbSoundExist(1)) dbDeleteSound (1); terminar_app = 1; } // tst_som().end

index << >>


Produzido por Gameprog: Jair Pereira - Setembro/2013 © gameprog.br@gmail.com http://www.gameprog.com.br http://www.nucleoararat.com.br