<> !!SDL初期化
//main関数内
 gtk_init (&argc , &argv);
  SDL_Init( SDL_INIT_AUDIO  );

  Mix_OpenAudio(MIX_DEFAULT_FREQUENCY,
		MIX_DEFAULT_FORMAT, 2, 1024);
!!music_set(int)
void music_set(int n)
{
  switch(n){
  case 0:
    gameover = Mix_LoadMUS(Music_GameOver);
    break;
  case 1:
    backmusic_c1 = Mix_LoadMUS(Music_Part1_main);
    break;
  default:
    break;
  }
  Mix_AllocateChannels(16);        // 同時発声数を設定
  return;
}
 引数で指定された曲ファイルをロードする。 !!music_play(int)
void music_play(int n)
{
  switch(n){
  case 0:
    Mix_PlayMusic(gameover,-1);
    break;
  case 1:
    Mix_PlayMusic(backmusic_c1, -1);
    break;
  default:
    break;
  }
  return;
}
 引数で指定された曲ファイルを再生する。 !!music_quit(int)
void music_quit(int n)
{
  Mix_HaltMusic();             // 曲の再生停止  
  switch(n){
  case 0:
    Mix_FreeMusic(gameover);
    break;
  case 1:
    Mix_FreeMusic(backmusic_c1);            
    break;
  default:
    break;
  }
  return;
}
 引数で指定された曲ファイルを停止する。 !!SDL終了
//cb_quit関数内
  Mix_CloseAudio();               
  SDL_Quit();                    
<
>
void music_set(int n);
void music_play(int n);
void music_quit(int n);
#define Music_Part1_main "./music/jingiss.mp3"
#define Music_GameOver "./music/gameover.mp3"
 上記の関数のプロトタイプ宣言+曲ファイル指定(見やすいように) <<担当者補足>>  予めロード・再生・停止の共通ルールを作成しておき、引数を指定することでどの曲ファイルに対してそれを行うかが決まる、という仕様になりました。もう少しスッキリとしたソースコードにできそうな感じもしますが、まずは最低限の形になりました。
 アドバイスをくれた海沼君や壽君に感謝です。 [[前ページに戻る|gr06::モジュール]]