Salut à tous,
voila, j´ai décidé de reprendre mon pong et de l´améliorer.
Première chose: restructuration du code,modularité
Ceci me permettant ensuite de modifier mon jeu. ( l´ancienne manière étant beaucoup trop bordellique).
J´ai déja effectué qq changements, mais je suis bloqué au niveau de ma fonction qui joue un son.
Donc je vous montre déja la fonction:
void play_song(char* zik, int canal)
{
FSOUND_STREAM* g;
int r;
FSOUND_Init(44100, 32, 0);
FSOUND_SetOutput(FSOUND_OUTPUT_DSOUND);
FSOUND_SetDriver(0);
g = FSOUND_Stream_Open(zik,0, 0,0);
r = FSOUND_GetError ( );
FSOUND_Stream_Play(canal,g);
}
que j´appel dans la boucle du jeu :
play_song("sons/touche.mp3",0);
Ca marche, mais, comme vous pouvez vous en douter, cette fonction demande pas mal de trucs, et oui, ca ralenti considérablement le jeu au moment de jouer le son.
J´ai donc essayé de créer deux fonctions :
void init_zik()
{
FSOUND_STREAM* g;
int r;
FSOUND_Init(44100, 32, 0);
FSOUND_SetOutput(FSOUND_OUTPUT_DSOUND);
FSOUND_SetDriver(0);
}
et :
void play_song(char* zik, int canal)
{
g = FSOUND_Stream_Open(zik,0, 0,0);
r = FSOUND_GetError ( );
FSOUND_Stream_Play(canal,g);
}
Et donc je n´appelais que la deuxieme fonction pour voir si le temps diminuait.
Mais la... je n´arrive a plus rien.
Je n´ai que des messages d´erreur concernant les deux fonctions ( g undeclared et autres).
Ensuite, je me suis posé la question, de quand libérer la place?
A quel place devrais-je mettre le " FMUSIC_FreeSong(f);"?
A la fin du prog ou après chaque fois que je joue le son?
J´ai pensé donc à la fin du prog ( autant dire jamais vu qu´on le ferme, non?).
Voila, c´est un peu confus, j´en suis désolé.
Si vous pouvez m´apporter des idées, ou même, des solutions, je vous en serais très reconnaissant 