DirectX SDK |
This topic pertains only to application development in C and C++. See DirectMusic Visual Basic Samples.
DM Donuts is a variation of the Space Donuts sample with the addition of music that responds to game events.
Source: (SDK root)\Samples\Multimedia\Dmusic\Src\DMDonuts
Executable: (SDK root)\Samples\Multimedia\DMusic\Bin\Dmdonuts.exe
While the donut floats in space, notice that the music is subtle and spacey. Press the arrow keys to move the ship. Bounce around and see how the music and rhythm respond.
Shoot the donut by firing with the space bar. Immediately there is an explosion of music and the background music grows in intensity.
Press the 7 key on the numeric keypad. This turns on the shields. Notice how the music becomes muted as if you were listening from inside the shield.
When all the donut fragments are destroyed, notice that the music immediately transitions into an ending, then starts the next level on the start of the next musical theme.
Notice that the music is never the same.
You can control the ship with the joystick if you prefer, by changing the input device under the Game menu.
The following is a complete list of game commands. All numbers must be entered from the numeric keypad. "Joy" refers to a joystick button.
Key | Command |
---|---|
ESC, F12 | Quit |
4 | Turn left |
6 | Turn right |
5 (Joy 3) | Stop |
8 | Accelerate forward |
2 | Accelerate backward |
7 (Joy 2) | Shields |
SPACEBAR (Joy 1) | Fire |
ENTER | Start game |
F1 | Toggle trailing afterimage effect on/off |
F5 | Toggle frame rate display on/off |
F7 | Turn music on/off |
F10 | Main menu |
The display defaults to 640x480 at 256 colors. You can specify a different resolution and pixel depth on the command line.
The game uses the following command line switches, which are case-sensitive:
e | Use software emulation, not hardware acceleration |
t | Test mode, no input required |
x | Stress mode. Never halt if you can help it |
These switches may be followed by three option numbers representing x-resolution, y-resolution, and bits per pixel. For example:
donuts -t 800 600 16
Techniques illustrated include the following:
By default, this sample runs on the software synthesizer. On versions of the operating system that support DLS synthesis in hardware, undefine the _SOFTWARE_SYNTH_ compile flag and recompile the sample.