Platform SDK: DirectX |
ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectMusic Visual Basic チュートリアル」を参照すること。
前のステップで、Donuts.cpp ファイル内の setup_game 関数は、ComposeNewSegments 関数を呼び出し、現在のゲーム レベルで演奏される 2 つのプライマリ セグメントを作成した。ここでは setup_game 関数はこれらのセグメントのうち最初のものを演奏する。
gpPerformance->PlaySegment( gapSegment[SEGMENT_1], 0, 0, NULL);
このフラグが、このセグメントを即座に演奏するよう指示している点に注意すること。
この関数は、現在のスタイル用に作成されたデフォルトのバンド セグメントを演奏する。(ゲーム レベルが変化した時点で、2 つの異なったスタイルが存在する点に注意すること。各スタイルには 2 つのバンドがあり、デフォルトのバンドは「シールドあり」のバンドである。) バンド セグメントを演奏することにより、正しい音色セットがこの音楽を演奏することが保証される。バンドセグメントをセカンダリとして指定するフラグを割り当てなければならない点に注意すること。変更が即座に行われるので、3 番目のパラメータで開始タイムが指定されておらず、セグメント状態へのポインタが必要ないので、最後のパラメータは NULL になっている。
gpPerformance->PlaySegment( gapDefaultSegment[gnCurrentStyle], DMUS_SEGF_SECONDARY, 0, NULL);
プレーヤーの宇宙船がシールドなしの状態になると、このスタイルのデフォルトのバンドが使われる。レベルの開始時に必ずこの状態が発生する。シールドが有効になると、アプリケーションはそれに応じて UpdateDisplayList 関数内の 2 番目のバンドを演奏し、シールドが無効になると再びデフォルトのバンドを演奏する。