第1章 Visual C++游戏编程基础 1
1.1 Visual C++可视化集成开发环境 1
目录 1
1.1.1 项目工作区 2
1.1.2 AppWizard(应用程序向导) 3
1.1.3 ClassWizard(类向导) 3
1.1.4 WizardBar(向导工具条) 4
1.1.5 Component Gallery(组件画廊) 4
1.1.6 Developer Studio的一些快捷特性 4
1.2.1 Win32应用程序 5
1.2 VC++工程项目模板程序 5
1.2.2 MFC应用程序 9
1.3 GDI原理基础 12
1.3.1 设备环境 12
1.3.2 常用GDI绘图操作 15
第2章 扫雷 19
2.1 需求分析 19
2.1.1 规则描述 19
2.2 框架的搭建 20
2.2.1 创建工程项目 20
2.1.2 功能需求分析 20
2.2.2 框架的改造 21
2.3 菜单的制作 24
2.3.1 难度级别的选择设定 24
2.3.2 窗体大小的改变 25
2.3.3 声音与图像颜色的开启 26
2.3.4 使用帮助的实现 27
2.3.5 关于信息的实现 27
2.4 核心实现 27
2.4.2 从算法到具体实现 28
2.4.1 算法设计 28
2.4.3 布雷 29
2.4.4 扫雷 30
2.5 界面制作 40
2.5.1 绘图的基本知识 40
2.5.2 绘图实现 42
2.5.3 雷区模块绘制 44
2.5.4 笑脸模块绘制 49
2.5.5 3D效果外壳模块绘制 51
2.5.6 数字模块绘制 52
2.6 功能的完善 55
2.6.1 音效的实现 55
2.6.2 图像彩色选项实现 56
2.7 英雄榜的实现 58
2.7.1 模态/非模态对话框 58
2.7.2 对话框模板的设计 58
2.7.3 对话框类的设计 60
2.7.4 非模态对话框的特点 66
第3章 贪吃蛇 73
3.1 需求分析 73
3.2 框架的搭建 74
3.2.1 创建工程项目 74
3.2.2 Win32应用程序架构 75
3.2.3 框架的改造 81
3.3 类的设计 84
3.4 游戏的实现 117
3.4.1 资源的准备 117
3.4.2 绘图的实现 123
第4章 推箱子 135
4.1 需求分析 135
4.1.1 功能描述 135
4.1.2 操作特性分析 135
4.2 框架的搭建 135
4.3.1 地图与内部数据结构的设计 138
4.3 核心实现 138
4.3.2 文件操作 140
4.3.3 地图的载入和导出 146
4.3.4 算法设计 147
4.3.5 算法子功能实现 149
4.3.6 游戏的绘制 156
4.4 功能的完善 162
4.4.1 音效的实现 162
4.4.2 帮助提示的制作 169
4.4.3 选关功能的实现 170
4.5.1 框架的搭建 174
4.5 地图编辑器框架的搭建 174
4.5.2 框架的改造 175
4.6 地图编辑器的核心实现 176
4.6.1 功能类的设计与实现 176
4.6.2 个性工具栏的实现 180
4.6.3 用户交互的实现 184
4.6.4 图像绘制 187
4.6.5 地图数据的导出 192
5.1.2 操作特性分析 195
5.1.1 功能描述 195
5.1 需求分析 195
第5章 俄罗斯方块 195
5.2 框架的搭建 196
5.3 MFC应用程序架构 197
5.3.1 App应用程序类物件 197
5.3.2 文档-视图机制 200
5.3.3 绘图程序的实现 216
5.3.4 MFC机制的文档-视图-框架的内在关联 232
5.4 框架的拓展 234
5.5.1 算法设计 235
5.5 游戏的内部实现 235
5.5.2 中断操作流程的设计 242
5.5.3 正常流程的设计 244
5.5.4 正常流程的实现(定时处理) 245
5.5.5 中断操作流程的实现 259
5.6 游戏区域绘图的实现 267
5.6.1 位图资源的准备 267
5.6.2 绘图机制设计 268
5.6.3 绘图环境资源的初始化和释放 268
5.6.4 游戏区域的绘制 271
5.7 功能的完善 275
5.7.1 MCI 277
5.7.2 游戏背景音乐的实现 282
5.7.3 工具栏快捷键的实现 284
第6章 拼图游戏 287
6.1 需求分析 287
6.1.1 功能描述 287
6.1.2 操作特性分析 288
6.2 预备知识 288
6.2.1 动态分裂视图 288
6.2.2 静态分裂视图 293
6.2.3 嵌入分裂视图 295
6.2.4 非同源多文档多视图 300
6.3 框架的搭建 303
6.4 算法的分析 305
6.4.1 数据结构设计 305
6.4.2 算法设计 306
6.5 核心实现 307
6.5.1 图像的分割 308
6.5.2 图像原始数据记录/游戏前的初始化 308
6.5.3 图像的移动 309
6.5.4 图像的打乱 313
6.6 用户交互操作的实现 314
6.5.5 图像的胜利检测 314
6.6.1 键盘事件的交互 315
6.6.2 鼠标事件的交互 317
6.7 图像的绘制 318
6.7.1 源图像区域视图的绘制 319
6.7.2 游戏区域视图的绘制 319
6.7.3 绘制功能函数 321
6.7.4 提高图像重绘的效率 324
6.8 功能的完善 324
6.8.1 个性化菜单的制作 325
6.8.2 用户自选图片的实现 333
6.8.3 背景音乐的添加 334
第7章 连连看 337
7.1 需求分析 337
7.2 框架的搭建 338
7.3 算法分析与设计 338
7.3.1 游戏地图数据的设计 338
7.3.2 数据的初始化工作 340
7.4 核心实现 341
7.4.1 图案方块的连接判断 341
7.4.3 鼠标交互功能的实现 345
7.4.2 游戏胜利的判断 345
7.5 绘图功能的实现 349
7.5.1 位图图像的准备 349
7.5.2 绘图方案的设计 349
7.5.3 绘图资源的载入与初始化 349
7.5.4 游戏区域的绘制 351
7.6 游戏外挂 352
7.6.1 功能需求 352
7.6.2 框架的搭建 353
7.8.1 目标程序的侵入以及控制权的获取 354
7.8 前期核心实现 354
7.7 入侵实现的概要分析 354
7.8.2 数据的获取以及分析(地图数据的生成) 358
7.8.3 自动化智能查找功能的设计与实现 362
7.9 侵入相关操作实现 364
7.9.1 目标程序的操作控制 364
7.9.2 整体入侵过程的实现 367
7.10 本端功能的实现与完善 369
7.10.1 用户交互的实现 369
7.10.2 本端的绘制显示 370