译者序
序
欢迎前来冒险
第一部分 Windows和DirectX游戏编程引言
第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 老的WinMain 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 初识Direct3D 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
第二部分 游戏编程工具箱
第4章 绘制位图 60
4.1 表面和位图 60
4.1.1 主表面 61
4.1.2 从离屏(off-screen)表面 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 初始化XInput 80
5.3.2 读取控制器状态 81
5.3.3 控制器振动 82
5.3.4 测试XInput 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_Scroll源代码 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.1.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 Stock_Mesh程序 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
第三部分 游 戏 项 目
第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
第四部分 附 录
附录A 配置Visual C++ 268
附录B 可进一步学习的资源 274
附录C 各章测验答案 278
附录D 附加示例 287
· · · · · · (
收起)