Platform SDK: DirectX |
ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectMusic Visual Basic チュートリアル」を参照すること。
次の define とグローバル変数は、Donuts.cpp の先頭で宣言されている。このチュートリアルを利用する際の参照用に、ここに示しておく。
BOOL bMusicEnabled = TRUE; // さまざまな定数 const GUID guidZero = {0}; #define MOTIF_BOUNCE 0 #define MOTIF_DEATH 1 #define MOTIF_SHIELD 2 #define MOTIF_BLOWUP 4 #define MOTIF_BLOWUPLITE 3 #define NUM_MOTIFS 5 #define NUM_STYLES 2 #define SEGMENT_1 0 #define SEGMENT_2 1 #define SEGMENT_TRANS_1 2 #define SEGMENT_TRANS_2 3 #define NUM_SEGMENTS 4 #define NUM_CHORDMAP 4 #define BLOWUPS_PER_BEAT 2 #define MEASURE_LENGTH DMUS_PPQ * 4 // パート数/四分音符 * 四分音符の数/小節 (4/4 拍子を想定) // グローバル インターフェイス IDirectMusicStyle* gapStyle[NUM_STYLES]; IDirectMusicChordMap* gapChordMap[NUM_STYLES] [NUM_CHORDMAP]; IDirectMusicSegment* gapMotif[NUM_STYLES] [NUM_MOTIFS]; IDirectMusicSegment* gapSegment[NUM_SEGMENTS] = {NULL, NULL, NULL, NULL}; IDirectMusicComposer * gpComposer = NULL; IDirectMusicPerformance* gpPerformance = NULL; IDirectMusic* gpDirectMusic = NULL; IDirectMusicLoader* gpLoader = NULL; IDirectMusicSegment* gpIntroTemplate = NULL; IDirectMusicSegment* gpGameTemplate = NULL; IDirectMusicSegment* gapShieldSegment[NUM_STYLES] = {NULL, NULL}; IDirectMusicSegment* gapDefaultSegment[NUM_STYLES] = {NULL, NULL}; IDirectMusicBand* gapShieldBand[NUM_STYLES] = {NULL, NULL}; IDirectMusicBand* gapDefaultBand[NUM_STYLES] = {NULL, NULL}; // グローバル変数 BOOL bAnyHits = FALSE; int gnCurrentStyle = 0; int gnCurrentChordMap = 0; int gnLastStyle = 0; int gnLastChordMap = 0; BOOL gbShieldsOn = FALSE; static int snLastTempo; static int snSubLevel; static int snMaxBlowUps = BLOWUPS_PER_BEAT;
次項 : ステップ 2 : パフォーマンスの初期化