第1章 游戏编程导论 1
1.1 游戏设计概述 1
1.1.1 计算机游戏的概念 1
1.1.2 游戏基本构成要素 3
1.1.3 游戏类型 5
1.1.4 游戏设计常用术语 12
1.2 游戏制作基本流程 14
1.2.1 前期阶段 15
1.2.2 制作阶段 15
1.2.3 后期阶段 16
1.3 关于游戏引擎 17
1.3.1 游戏引擎的含义 17
1.3.2 游戏引擎的结构 18
1.3.3 关于游戏工具 19
1.3.4 著名游戏引擎简介 20
1.4 游戏编程语言 21
1.5 学习的先决条件 23
1.6 几点相关说明 24
第2章 了解Windows编程 25
2.1 Visual C++编程方式 25
2.1.1 直接调用Windows API方式 25
2.1.2 采用MFC方式 26
2.1.3 Windows程序设计基本概念 26
2.2 事件驱动及消息机制 28
2.2.1 Windows中的事件驱动 29
2.2.2 Windows应用程序中的常见消息 29
2.3 Windows窗口的生成 32
2.3.1 指定窗口特征 32
2.3.2 注册窗口类并创建窗口 35
2.4 Windows程序创建及程序框架分析 36
2.4.1 Windows程序的创建 36
2.4.2 Windows程序的基本结构分析 39
2.5 修改程序图标和光标 42
2.5.1 图标资源的创建和加载 43
2.5.2 光标资源的创建和加载 44
第3章 构建游戏引擎框架 46
3.1 游戏引擎框架的构建 46
3.1.1 引擎框架的设计 46
3.1.2 T_Config头文件的定义 49
3.1.3 屏幕分辨率的改变及恢复 52
3.1.4 引擎类的定义和实现 55
3.2 引擎类应用实例 63
3.2.1 编写引擎框架测试代码 63
3.2.2 为框架测试代码增加绘图处理任务 65
第4章 Windows图形编程 67
4.1 与位图相关的概念 67
4.1.1 色彩模式 67
4.1.2 色彩深度 68
4.1.3 Alpha通道 69
4.1.4 RGB颜色的描述 69
4.2 Windows图形技术 70
4.2.1 图形技术简介 70
4.2.2 图形设备接口 70
4.3 GDI图形操作 73
4.3.1 位图与设备环境 73
4.3.2 设备相关的位图 74
4.3.3 设备无关的位图 76
4.4 GDI绘图函数 82
4.4.1 BitBlt()函数及其应用 83
4.4.2 StretchBlt()函数及其应用 83
4.4.3 AlphaBlend()函数及其应用 84
4.5 GDI+图形操作 85
4.5.1 GDI+简介 85
4.5.2 Graphics类 86
4.5.3 Image类与Bitmap类 86
4.5.4 图像显示 89
4.5.5 图像旋转与翻转 89
4.5.6 文字显示 94
4.6 综合应用实例 95
第5章 为引擎添加位图操作模块 101
5.1 位图操作类的设计与实现 101
5.1.1 位图操作类需求分析 101
5.1.2 位图操作类的定义 102
5.1.3 位图操作类的实现 103
5.2 利用位图操作类设计游戏菜单类 108
5.2.1 游戏菜单类的需求分析 109
5.2.2 游戏菜单类的定义 110
5.2.3 游戏菜单类的实现 111
5.2.4 测试游戏菜单类 118
5.3 游戏菜单类应用实例 118
第6章 理解动画与游戏角色 124
6.1 理解游戏动画 124
6.1.1 帧动画与帧图像 124
6.1.2 帧序列 125
6.1.3 游戏FPS的设定 126
6.1.4 帧动画绘制实例 126
6.1.5 文字动画绘制实例 130
6.2 游戏中的角色 132
6.2.1 角色的含义 132
6.2.2 游戏角色的共性 133
6.2.3 角色信息的描述 134
6.3 多角色绘制与控制实例 135
第7章 为引擎添加游戏角色模块 143
7.1 关于图层的概念 143
7.2 构建游戏图层类 144
7.3 创建游戏角色类 145
7.3.1 游戏角色类的设计 145
7.3.2 游戏角色类的实现 148
7.4 为游戏角色类添加AI控制 157
7.4.1 AI类的基本需求与设计 158
7.4.2 AI类的实现 160
7.5 游戏角色类及AI类应用实例 166
第8章 理解游戏地图 173
8.1 关于游戏地图 173
8.2 游戏地图的制作 174
8.2.1 基于图块的游戏地图原理 174
8.2.2 游戏地图的制作 176
8.3 为引擎增加游戏地图类 181
8.4 为角色类增加地图处理 187
8.5 为AI类增加地图处理 190
8.6 地图应用综合实例 191
第9章 为引擎添加游戏场景模块 203
9.1 游戏场景模块需求分析 203
9.2 游戏场景模块的设计 204
9.3 游戏场景模块的实现 207
9.3.1 场景操作函数 207
9.3.2 图层操作函数 211
9.3.3 地图文件解析函数 214
9.3.4 场景绘制函数 217
9.4 游戏场景模块应用实例 218
第10章 为引擎添加声音模块 226
10.1 资源交换文件格式 226
10.2 资源交换文件的操作 227
10.2.1 打开与关闭 227
10.2.2 文件的读写 228
10.2.3 文件的定位 229
10.3 波形文件读取 230
10.3.1 波形文件结构体 230
10.3.2 编写波形文件读取类 231
10.4 波形文件播放 233
10.4.1 DirectSound概述 234
10.4.2 在开发环境中设置DirectX SDK 234
10.4.3 DirectSound对象创建及初始化 235
10.4.4 声音缓冲区的创建 237
10.4.5 缓冲区声音的播放与控制 238
10.5 DirectSound操作类的创建 239
10.5.1 AudioDXBuffer类的定义与实现 240
10.5.2 AudioDX类的定义与实现 244
10.6 为菜单类添加音效处理 245
10.7 声音模块应用实例 247
10.8 游戏引擎小结 251
第11章 引擎案例——贪食鱼游戏 253
11.1 游戏需求分析 253
11.2 游戏总体设计 254
11.2.1 游戏素材设计 255
11.2.2 数据结构及数据类型定义 257
11.2.3 游戏类设计 258
11.3 游戏代码实现 262
11.3.1 资源加载类函数 262
11.3.2 游戏状态更新类函数 269
11.3.3 关卡处理函数 275
11.3.4 游戏细节处理类函数 276
11.3.5 引擎接口函数实现 281
11.4 游戏运行与发布 286
11.4.1 游戏运行测试 286
11.4.2 游戏项目发布 288
第12章 引擎案例——新坦克大战游戏 291
12.1 游戏需求分析 291
12.2 游戏总体设计 292
12.2.1 游戏素材设计 293
12.2.2 游戏地图设计 295
12.2.3 游戏类设计 296
12.3 游戏代码实现 299
12.3.1 资源加载类函数 299
12.3.2 游戏状态更新类函数 307
12.3.3 关卡处理函数 313
12.3.4 游戏细节处理类函数 315
12.3.5 引擎接口函数实现 321
12.4 游戏运行测试 325
参考文献 328
参考网站 328