C言語ゲームプログラミング 第10回講座




2014年10月より個人の方を対象に、Study C無料提供を開始しました。
C言語を勉強中の方は、学習・教育に最適なC言語インタープリタのStudy Cを使ってみてください(個人の方は無料です)。
大学・高専・高校などの教育機関での採用実績も多数あるロングセラー商品Study Cが、個人向けに無料提供を始めました。
インタープリタの手軽さに加え、ゲームや3Dタートルグラフィックで楽しく勉強したりと、C言語の学習を協力にサポートします。
ブロック崩しゲーム 3Dツリー クリスマスツリー
また、このようなボタンの用意されているページでは、掲載しているプログラムをStudy Cに直接ロードし実行したりすることができます。
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する
Study C無料利用についての詳細は、このページを参照してください。



1.効果音を鳴らす

今回はゲーム中に音を鳴らす方法を説明します。 音を鳴らすこと自体は簡単なのですが、音データ自体を作る方法はよく知りません。 そこで、Windowsで最初から用意されている音データを使用することにします。 エクスプローラなどを起動してWindowsをインストールしたディレクトリ下のMEDIAディレクトリを表示してください(普通はC:\Windows\MEDIA\に格納されています)。 幾つかのファイルが存在すると思います。この中で拡張子がWAVのファイル(WAVEファイル)が効果音として使用できます。 てきとうなファイルをダブルクリックして再生させてみてください。 たとえば、Chimes.wavやChord.wavファイルなどを再生してみてください。 普段Windowsを使用している時に聞いたことがある効果音だと思います。

音源となるWAVEファイルが存在すれば、再生するのは簡単です。 gl_playsound()関数でWAVEファイルを指定すればWAVEファイルが再生されます。

main()
{
        gl_openwin(-1, -1, 640, 480, 0);
        gl_playsound("c:\\windows\\media\\chord.wav");
}


main()
{
        gl_openwin(-1, -1, 640, 480, 0);
        gl_playsound("c:\\windows\\media\\chimes.wav");
}

注)これらの関数は、グラフィック用ウィンドウをオープンしてから使用してください。


2.BGMの演奏

効果音以外にBGMを演奏する場合には、gl_playbgm()関数を使用します。 Windowsでは通常、同時に2種類WAVEファイルを演奏することができないので(できる方法もあるようですが)、BGMとしてはMIDIファイルを使用します。 MIDIファイルは市販ソフトで作成することができますが、これもWindowsに最初から用意されているデータを使用します。 MIDIファイルもWAVEファイルと同じディレクトリに幾つか格納されています。

gl_playbgm()関数で演奏を開始すると繰り返し(何回も)演奏が行われます。 gl_stopbgm()関数を呼び出すか、プログラムを終了させると演奏は終了します。

main()
{
        gl_openwin(-1, -1, 640, 480, 0);
        printf("BGM start\n");
        //BGM演奏の開始
        gl_playbgm("c:\\windows\\media\\canyon.mid");
        getchar();

        printf("BGM stop\n");
        //BGM演奏の終了
        gl_stopbgm();
        getchar();

        printf("BGM start\n");
        //BGM演奏の開始
        gl_playbgm("c:\\windows\\media\\canyon.mid");
        getchar();
}

注)これらの関数は、グラフィック用ウィンドウをオープンしてから使用してください。
オープンせずに使用すると繰り返し演奏されません。