第一部分Windows和DirectX游戏编程引言 2
第1章Windows初步 2
1.1 Windows编程概述 2
1.1.1认识Windows 3
1.1.2 Windows消息机制 4
1.1.3多任务 5
1.1.4多线程 6
1.1.5事件处理 7
1.2 DirectX快速概览 8
Direct3D是什么 9
1.3 Windows程序基础 9
1.3.1创建第一个Win32项目 10
1.3.2理解WinMain 16
1.3.3完整的WinMain 17
1.4你所学到的 19
1.5复习测验 19
1.6自己动手 19
第2章 侦听Windows消息 20
2.1编写一个真正的Windows程序 20
2.1.1理解InitInstance 23
2.1.2理解MyRegisterClass 25
2.1.3晒一晒WinProc的秘密 27
2.2什么是游戏循环 31
2.2.1老的WiMain 31
2.2.2 WinMain和循环 33
2.3 GameLoop项目 35
GameLoop程序的源代码 36
2.4你所学到的 42
2.5复习测验 42
2.6自己动手 43
第3章 初始化Direct3D 44
3.1初识Direct3 D 44
3.1.1 Direct3D接口 44
3.1.2创建Direct3D对象 45
3.1.3让Direct3D转起来 47
3.1.4全屏模式的Direct3D 55
3.2你所学到的 56
3.3复习测验 56
3.4自己动手 57
第二部分 游戏编程工具箱 60
第4章 绘制位图 60
4.1表面和位图 60
4.1.1主表面 61
4.1.2从离屏(oscreen)表面 62
4.1.3 Create Surface示例 64
4.1.4从磁盘装载位图 68
4.1.5 Load Bitmap程序 69
4.1.6代码再利用 73
4.2你所学到的 73
4.3复习测验 73
4.4自己动手 73
第5章 从键盘、鼠标和控制器获得输入 74
5.1键盘输入 74
5.1.1 DirectInput对象和设备 74
5.1.2初始化键盘 75
5.1.3读取键盘按键 77
5.2鼠标输入 77
5.2.1初始化鼠标 77
5.2.2读取鼠标 78
5.3 Xbox 360控制器输入 79
5.3.1初始化Xlnput 80
5.3.2读取控制器状态 81
5.3.3控制器振动 82
5.3.4测试Xlnput 82
5.4精灵编程简介 88
5.4.1一个有用的精灵结构 90
5.4.2装载精灵图像 91
5.4.3绘制精灵图像 91
5.5 Bomb Catcher游戏 92
5.5.1 MyWindows.cpp 93
5.5.2 MyDirectX.h 95
5.5.3 MyDirectX.cpp 97
5.5.4 MyGame.cpp 103
5.6你所学到的 107
5.7复习测验 107
5.8自己动手 108
第6章 绘制精灵并显示精灵动画 109
6.1什么是精灵 109
6.2装载精灵图像 109
6.3透明的精灵 111
6.3.1初始化精灵渲染器 112
6.3.2绘制透明的精灵 113
6.4绘制动画的精灵 120
6.4.1使用精灵表 120
6.4.2精灵动画演示 123
6.5你所学到的 126
6.6复习测验 126
6.7自己动手 126
第7章 精灵变换 127
7.1精灵旋转和缩放 127
7.1.1 2D变换 129
7.1.2绘制变换了的精灵 132
7.1.3 Rotate_Scale_Demo程序 134
7.1.4带有变换的动画 136
7.2你所学到的 139
7.3复习测验 140
7.4自己动手 140
第8章 检测精灵碰撞 141
8.1边界框碰撞检测 141
8.1.1处理矩形 141
8.1.2编写碰撞函数 142
8.1.3新的精灵结构 143
8.1.4为精灵的缩放进行调整 144
8.1.5边界框演示程序 144
8.2基于距离的碰撞检测 148
8.2.1计算距离 149
8.2.2编写计算距离的代码 149
8.2.3测试基于距离的碰撞 150
8.3你所学到的 151
8.4复习测验 151
8.5自己动手 151
第9章 打印文本 153
9.1创建字体 153
9.1.1字体描述符 153
9.1.2创建字体对象 154
9.1.3可重用的MakeFont函数 154
9.2使用ID3DXFont打印文本 155
9.2.1使用DrawText打印 155
9.2.2文本折行 156
9.3测试字体输出 156
9.4你所学到的 159
9.5复习测验 160
9.6自己动手 160
第10章 卷动背景 161
10.1卷动 161
10.1.1背景和布景 162
10.1.2从图片单元创建背景 162
10.1.3基于图片单元的卷动 163
10.1.4基于图片单元的卷动项目 163
10.2动态渲染图片单元 168
10.2.1图片单元地图 169
10.2.2使用Mappy创建图片单元地图 170
10.2.3 Tile Dynamic_Scroll项目 174
Tile_ Dynamic_Scro11源代码 175
10.3基于位图的卷动 180
10.3.1基于位图的卷动理论 180
10.3.2位图卷动演示 181
10.4你所学到的 184
10.5复习测验 184
10.6白己动手 184
第11章 播放音频 186
11.1使用DirectSound 186
11.1.1初始化DirectSound 187
11.1.2创建声音缓冲区 187
11.1.3装载波形文件 188
11.1.4播放声音 188
11.2测试DirectSound 189
11.2.1创建项目 189
11.2.2修改MyDirectX文件 191
11.2.3修改MyGame.cpp 193
11.3你所学到的 199
11.4复习测验 199
11.5自己动手 199
第12章3D渲染基础 200
12.1 3D编程介绍 200
12.1.1 3D编程的关键组成部分 200
12.1.2 3D场景 201
12.1.3转移到第三维 204
12.4掌握3D管线 205
12.1.5顶点缓冲区 206
12.1.6渲染顶点缓冲区 208
12.1.7创建四边形 209
12.2带纹理的立方体示例 211
MyGame.cpp 213
12.3你所学到的 219
12.4复习测验 219
12.5自己动手 220
第13章 渲染3D模型文件 221
13.1创建及渲染后援网格 221
13.1.1创建后援网格 221
13.1.2渲染后援网格 223
13.1.3 StockMesh程序 224
13.2装载并渲染模型文件 226
13.2.1装载.X文件 226
13.2.2渲染完整的模型 231
13.2.3从内存中删除一个模型 231
13.2.4 Render_Mesh程序 232
13.3你所学到的 239
13.4复习测验 239
13.5自己动手 240
第三部分 游戏项目 242
第14章Anti-Virus(反病毒)游戏 242
14.1 Anti-Virus游戏 242
14.1.1游戏玩法 243
14.1.2游戏源代码 251
14.2你所学到的 264
14.3复习测验 264
14.4自己动手 264
第四部分 附录 268
附录A配置Visual C 268
附录B可进一步学习的资源 274
附录C各章测验答案 278
附录D附加示例 287