第1章 游戏程序设计概述 1
1.1 计算机游戏的概念 1
1.2 计算机游戏的分类 2
1.2.1 角色扮演游戏 2
1.2.2 动作类游戏 3
1.2.3 实时策略游戏 3
1.2.4 第一视觉射击游戏 3
1.2.5 模拟游戏 4
1.2.6 体育类游戏 4
1.3 设计游戏的要素 4
1.3.1 策划 5
1.3.2 程序 5
1.3.3 美术 5
1.3.4 音乐 6
1.4 计算机游戏的发展趋势 6
1.4.1 沉浸感 6
1.4.2 交互性 6
1.4.3 国际化 7
思考题 7
第2章 Win32应用程序 8
2.1 Visual Studio 2010中Win32应用程序创建过程 8
2.2 Windows主函数 11
2.3 窗口建立过程 12
2.4 Windows消息循环 14
2.5 窗口过程函数 15
2.6 Win32应用程序示例 16
2.7 游戏程序框架 18
思考题 21
第3章 Windows绘图函数 22
3.1 屏幕绘图的相关概念 22
3.1.1 窗口和视口 22
3.1.2 GDI坐标系 23
3.2 画笔、画刷与文字 25
3.2.1 GDI对象的建立 25
3.2.2 GDI对象的选用与删除 27
3.2.3 GDI示例 27
3.3 GDI绘图函数 31
3.3.1 点线函数 31
3.3.2 形状函数 32
3.3.3 填充函数 33
思考题 33
第4章 游戏中的角色与场景 34
4.1 位图显示 34
4.2 镂空贴图 37
4.2.1 使用BitBlt()中的参数Raster完成镂空贴图 38
4.2.2 使用TransparentBlt()函数完成镂空贴图 39
4.3 地图显示 40
4.3.1 平面拼接地图 40
4.3.2 斜角拼接地图 43
思考题 47
第5章 动画 48
5.1 使用定时器完成游戏动画 48
5.1.1 建立定时器 48
5.1.2 删除定时器 49
5.1.3 示例 49
5.2 利用消息循环完成游戏动画 51
5.2.1 利用消息循环完成动画原理 51
5.2.2 示例 52
思考题 54
第6章 键盘与鼠标交互 55
6.1 Windows键盘消息处理 55
6.1.1 Windows键盘概述 55
6.1.2 键盘消息处理 56
6.1.3 键盘交互程序示例 57
6.2 Windows鼠标消息处理 61
6.2.1 鼠标消息的处理方式 61
6.2.2 示例 63
6.2.3 相关函数的讲解 69
思考题 70
第7章 运动与碰撞检测 71
7.1 运动 71
7.1.1 匀速直线运动 71
7.1.2 变速运动 75
7.2 碰撞检测 77
7.2.1 以物体框架来检测碰撞 77
7.2.2 用颜色来检测碰撞 79
7.3 粒子系统 83
思考题 83
第8章 3D游戏概述 84
8.1 3D坐标系及转换 84
8.2 模型对象的建立 85
8.3 视图变换 85
8.3.1 平移变换 86
8.3.2 旋转变换 86
8.3.3 缩放变换 87
8.4 投影变换 87
8.5 3D游戏的开发手段 88
思考题 89
第9章 Direct 3D简介 90
9.1 Direct 3D的体系结构 90
9.1.1 Direct 3D的绘制流程 90
9.1.2 Direct 3D绘制程序框架图 91
9.2 Direct 3D开发环境配置 92
9.3 Direct 3D初始化 94
9.3.1 创建Direct 3D接口对象 95
9.3.2 获取设备的硬件信息 95
9.3.3 填充D3DPRESENT PARAMETERS结构体 96
9.3.4 IDirect 3D设备接口的创建 98
9.4 Direct 3D渲染 99
9.4.1 清屏操作 99
9.4.2 绘制 100
9.4.3 翻转显示 100
9.4.4 Direct 3D的渲染过程 101
9.5 Direct 3D中二维文本的绘制 102
9.6 Direct 3D框架程序 104
思考题 110
第10章 Direct 3D图形绘制基础 111
10.1 以顶点缓存为数据源的图形绘制 112
10.1.1 基础知识 112
10.1.2 在Direct 3D编程中使用顶点缓存的四个步骤 113
10.2 顶点缓存程序示例 120
10.3 以索引缓存为数据源的图形绘制 123
10.4 索引缓存程序示例 128
10.5 Direct 3D内置几何体概述 132
10.5.1 立方体的创建 132
10.5.2 圆柱体的创建 133
10.5.3 2D多边形的创建 134
10.5.4 球体创建 134
10.5.5 圆环的创建 135
10.5.6 茶壶的创建 135
思考题 136
第11章 Direct 3D变换 137
11.1 视图变换 137
11.2 投影变换 141
11.3 视口变换 142
11.4 Direct 3D变换示例 143
11.5 Direct 3D固定功能渲染流水线概述 148
思考题 149
第12章 Direct 3D光照与材质 150
12.1 光照类型 150
12.1.1 环境光 150
12.1.2 漫反射光 151
12.1.3 镜面反射光 151
12.1.4 自发光 152
12.2 光源类型 152
12.2.1 点光源 154
12.2.2 方向光源 154
12.2.3 聚光灯光源 155
12.3 材质 155
12.4 灯光与材质示例 157
思考题 162
第13章 Direct 3D纹理映射 163
13.1 纹理映射的概念 163
13.2 Direct 3D中纹理映射的实现方法 163
13.2.1 纹理坐标的定义 163
13.2.2 顶点坐标与纹理坐标的对应 164
13.2.3 纹理的创建 165
13.2.4 纹理的启用 166
13.3 纹理绘制示例 168
思考题 173
第14章 游戏引擎 174
14.1 什么是游戏引擎 174
14.2 目前比较流行的几款主流引擎 175
14.3 Unity游戏引擎简介 176
14.4 Unity下载与安装 178
思考题 180
第15章 Unity程序开发框架和编辑器使用 181
15.1 Unity程序开发框架、工程和应用以及场景的关系 181
15.2 工程的创建和导入 182
15.3 Unity编辑器介绍 184
15.3.1 官方资源导入方法 184
15.3.2 场景中的6个视图 185
15.3.3 编辑器界面设置 186
15.3.4 Unity编辑器——Project(项目视图) 186
15.3.5 Unity编辑器——Hierarchy(层次视图) 188
15.3.6 Unity编辑器——Inspector(检视视图) 190
15.3.7 Unity编辑器——Scene(场景视图) 192
15.3.8 Unity编辑器——Game(游戏视图) 194
15.3.9 Unity编辑器——Console(控制台视图) 195
思考题 195
第16章 资源和游戏对象 196
16.1 Unity资源 196
16.1.1 场景、资源、游戏对象、组件间的关系 196
16.1.2 内部资源创建 198
16.1.3 外部资源导入 199
16.1.4 Unity中预设的创建 200
16.1.5 Unity中图片、模型和音频、视频的支持 200
16.2 Unity常用组件介绍 202
16.2.1 Transform(变换组件) 202
16.2.2 Camera(摄像机组件) 203
16.2.3 Lights(光源) 205
16.3 常用物理引擎组件 206
16.3.1 Rigidbody(刚体组件) 206
16.3.2 Collider(碰撞器组件) 207
思考题 208
第17章 Unity脚本程序基础 209
17.1 什么是脚本程序 209
17.2 Unity脚本编辑器 210
17.3 Unity脚本的创建与编辑 211
17.3.1 Script(脚本)创建 211
17.3.2 编辑脚本程序 212
17.3.3 常用事件函数 214
17.3.4 游戏对象和组件访问 215
思考题 217
第18章 Unity GUI图形用户界面 218
18.1 UGUI的基本介绍 218
18.2 UGUI的创建和基本操作 219
18.3 UGUI实例演示 220
18.3.1 GUI之Button和Text 221
18.3.2 GUI之Toggle应用 222
18.3.3 GUI的Image和Scrollbar应用 224
18.3.4 通过Button调用其他场景 225
18.3.5 Slider与游戏对象 226
18.4 打包与发布 227
思考题 228
第19章 Mecanim动画系统 229
19.1 Mecanim动画系统及其优势 229
19.2 Mecanim工作流程 230
19.3 人形角色动画讲解 230
思考题 238
第20章 游戏开发实例——奔跑的轮胎 239
思考题 260
参考文献 261