第1章 游戏漫谈 1
1.1 游戏发展简史 1
1.1.1 游戏的起源 1
1.1.2 游戏的共性 3
1.1.3 游戏的发展 3
1.2 相关计算机知识 9
1.2.1 软硬件要求 9
1.2.2 游戏行话 11
1.3 游戏的本质 12
1.4 游戏分类 12
1.5 小结 15
1.6 思考题 15
第2章 游戏设计概论 16
2.1 游戏的设计流程 16
2.1.1 需求分析 16
2.1.2 可行性分析 17
2.1.3 总体设计 18
2.1.4 详细设计与编码 20
2.1.5 游戏测试与发布 21
2.2 游戏设计的组成 21
2.2.1 创意 22
2.2.2 管理 22
2.2.3 艺术 22
2.2.4 编码 23
2.2.5 音频 23
2.3 游戏开发工具 24
2.4 游戏引擎 26
2.5 小结 28
2.6 思考题 28
第3章 Windows编程简介 29
3.1 Windows编程基础 29
3.1.1 Windows的开发平台 29
3.1.2 窗口 30
3.1.3 Windows程序设计 31
3.1.4 事件与消息 33
3.1.5 句柄 35
3.1.6 Windows程序的数据类型 35
3.2 利用Visual Studio C++建立MVFC应用程序 35
3.3 小结 38
3.4 思考题 38
第4章 MFC编程基础 39
4.1 开发环境 39
4.1.1 了解开发平台 39
4.1.2 类向导——ClassWizard 41
4.1.3 项目与项目工作区 41
4.2 SDI相关知识 43
4.2.1 新建一个SDI应用程序 43
4.2.2 文档——视图结构 46
4.3 鼠标与键盘 48
4.3.1 鼠标事件 48
4.3.2 键盘事件 49
4.3.3 【程序示例】钱币叠加 50
4.4 GDI相关知识 55
4.4.1 CGdiObject类的派生类 56
4.4.2 画笔和画刷的使用方法 56
4.4.3 文字的显示和图形的绘制 59
4.5 位图及其加载 61
4.5.1 位图结构 62
4.5.2 位图类 64
4.5.3 【程序示例】位图的显示 65
4.6 对话框 67
4.7 控件 68
4.7.1 按钮 68
4.7.2 静态控件 73
4.7.3 编辑框 74
4.7.4 列表框 76
4.7.5 进度条 77
4.8 菜单 79
4.8.1 菜单的基本知识 79
4.8.2 菜单的创建 79
4.8.3 菜单的命令处理 81
4.9 集合类 82
4.9.1 表 82
4.9.2 数组 84
4.9.3 映射 86
4.10 【程序示例】手写手绘 88
4.11 小结 92
4.12 思考题 92
第5章 动画机制 93
5.1 游戏动画 93
5.1.1 动画机制 93
5.1.2 连续运动的实现 94
5.1.3 时钟事件的启动及设置方法 94
5.2 【程序示例】贴图动画 97
5.3 双缓冲 101
5.3.1 双缓冲原理 102
5.3.2 【程序示例】利用双缓冲消除图片背景 104
5.4 小结 107
5.5 思考题 107
第6章 游戏中的数学物理算法 108
6.1 游戏中的数学公式 108
6.2 物理原理 109
6.2.1 牛顿运动定律 109
6.2.2 【程序示例】匀速运动的模拟 110
6.2.3 变速运动的模拟 113
6.2.4 【程序示例】平抛运动的模拟 114
6.2.5 动量守恒的模拟 116
6.2.6 【程序示例】反射运动的模拟 117
6.3 对象的碰撞检测 120
6.3.1 碰撞对速度的影响 121
6.3.2 碰撞及其分类 121
6.3.3 【程序示例】弹球运动模拟 123
6.4 【程序示例】粒子系统 125
6.5 小结 130
6.6 思考题 130
第7章 音效与音乐 131
7.1 MCI的基本操作 131
7.2 【程序示例】MIDI音乐播放器 133
7.2.1 浏览并选择音乐文件 134
7.2.2 循环播放的实现 138
7.3 播放WAV和MP3文件 141
7.4 封装MCI的常用功能 142
7.5 小结 144
7.6 思考题 144
第8章 捉猴子游戏的设计与开发 145
8.1 【程序示例】简化游戏的设计与开发 145
8.1.1 导入图片 145
8.1.2 设计菜单及工具栏 147
8.1.3 添加鼠标事件与时钟事件 151
8.1.4 判断输赢 155
8.2 【程序示例】捉猴子游戏的设计与开发 157
8.2.1 主程序与对话框的数据交换方法 157
8.2.2 数据管理——数组 160
8.2.3 自定义MFC风格 166
8.3 小结 169
第9章 拼图游戏的设计与开发 170
9.1 拼图游戏分析 170
9.1.1 背景介绍 170
9.1.2 需求分析 170
9.2 拼图游戏的界面设计 170
9.3 【程序示例】拼图游戏的开发 171
9.3.1 改变标题 171
9.3.2 导入图片 174
9.3.3 分割图片 175
9.3.4 打乱图像顺序 178
9.3.5 添加鼠标事件 183
9.3.6 添加游戏信息 188
9.4 小结 191
第10章 扫雷游戏的设计与开发 192
10.1 扫雷游戏分析 192
10.1.1 背景介绍 192
10.1.2 需求分析 193
10.2 游戏界面设计与地图 193
10.2.1 生成地图数据 193
10.2.2 显示地图 196
10.3 【程序示例】扫雷游戏的开发 198
10.3.1 初始化 198
10.3.2 处理单击事件 199
10.3.3 右键事件单击处理函数 205
10.3.4 双键按下事件处理函数 207
10.3.5 重新开始游戏 208
10.4 本章小结 209
第11章 连连看游戏的设计与开发 210
11.1 连连看游戏分析 210
11.1.1 背景介绍 210
11.1.2 需求分析 211
11.2 连连看游戏的界面设计 211
11.3 【程序示例】连连看游戏的开发 212
11.3.1 建立游戏工程 212
11.3.2 游戏区域地图及初始化 213
11.3.3 导入游戏图案 214
11.3.4 消除条件 215
11.3.5 添加鼠标事件 219
11.3.6 添加游戏辅助功能 221
11.4 小结 229
参考文献 230