第1章 DirectX游戏编程基础 1
1.1 DirectX基础 2
1.1.1 Microsoft和DirectX 2
1.1.2 DirectX SDK和DirectX组件 2
1.2 一个简单的游戏代码 5
1.3 组织一个游戏工程 25
1.3.1 游戏工程的文件组织 25
1.3.2 工程的建立 26
1.3.3 工程框架程序 28
第2章 游戏编程——DirectDraw程序开发 31
2.1 创建DirectDraw界面 32
2.1.1 界面简介 32
2.1.2 创建DirectDraw对象 37
2.1.3 DirectDraw错误处理 37
2.1.4 对DirectDraw对象的查询 38
2.1.5 设置游戏的协同等级 39
2.1.6 游戏的显示模式 39
2.1.7 退出游戏时的清除工作 40
2.1.8 创建游戏主画面 40
2.1.9 选用调色板 47
2.1.10 画图 48
2.2 在游戏中加入色彩和调色板 54
2.2.1 256色和调色板 54
2.2.2 16位增强色 55
2.2.3 24位真彩色 56
2.2.4 32位真彩色 57
2.3 让游戏画面动起来 57
2.3.1 双缓冲 57
2.3.2 创建离屏画面 61
2.3.3 页交换产生动画 66
2.3.4 创建图形变换器 69
2.3.5 画面数据交换 78
2.4 对画面进行剪切 79
2.4.1 对像素进行剪切 79
2.4.2 对位图进行剪切 82
2.4.3 DirectX的剪切 86
2.5 在游戏中加入位图 93
2.5.1 位图格式 93
2.5.2 编程读取位图的方法 95
2.5.3 游戏位图的加载 100
2.5.4 创建备用画面 104
2.5.5 色彩关键字 110
2.5.6 进行图形变换 118
2.5.7 旋转和缩放 126
2.6 更进一步:窗口中的DirectDraw 128
2.6.1 全屏的差异 128
2.6.2 用户区 130
2.7 色彩效果初步 133
第3章 控制精灵——获取DirectInput数据 137
3.1 游戏的输入循环 138
3.1.1 游戏的输入设备 138
3.1.2 游戏的输入循环 140
3.2 获取键盘输入 141
3.2.1 移动精灵实例 141
3.2.2 创建DirectInput对象 147
3.2.3 创建键盘设备 148
3.2.4 设置协作等级 149
3.2.5 设置数据格式 150
3.2.6 获取键盘 150
3.2.7 重载数据 150
3.2.8 数据处理 151
3.3 获取鼠标输入 151
3.3.1 鼠标的按键 151
3.3.2 鼠标的位置 158
3.4 游戏摇杆和力反馈 161
3.4.1 游戏摇杆 161
3.4.2 力反馈 163
第4章 加入声音——DirectSound和DirectMusic 167
4.1 声音基础 168
4.1.1 声音的产生 168
4.1.2 声音的特性 168
4.2 声音文件WAV和MIDI 168
4.2.1 WAV文件 168
4.2.2 MIDI文件 170
4.3 DirectSound应用 171
4.3.1 创建DirectSound对象 182
4.3.2 DirectSound协作等级 183
4.3.3 DirectSound声音缓冲 183
4.3.4 读取WAV文件 188
4.3.5 数据的写入与播放 191
4.4 DirectMusic应用 193
4.4.1 初始化接口 208
4.4.2 创建平台 208
4.4.3 加入端口 209
4.4.4 创建读取器 210
4.4.5 加载MIDI文件 210
4.4.6 播放和停止 212
4.4.7 关闭DirectMusic 214
第5章 3D游戏初步 215
5.1 DirectSound3D组件 216
5.1.1 音量和声道控制 216
5.1.2 DirectSound3D的组成 220
5.1.3 DirectSound3D缓冲区 221
5.1.4 DirectSound3D接收器 223
5.2 Direct3D基础 226
5.2.1 Direct3D的立即模式 226
5.2.2 Direct3D几何学基础 227
5.2.3 Direct3D的对象和接口 236
5.2.4 Direct3D灯光 246
5.2.5 Direct3D纹理 255
5.2.6 结束语 263