第1章 Windows API程序快速入门 1
1.1 VC++与Windows API 1
1.2 构建游戏设计的舞台 2
1.2.1 建立程序项目 2
1.2.2 程序架构说明 5
课后重点整理 9
第2章 游戏画面绘图 11
2.1 基本屏幕绘图 11
2.1.1 坐标与DC 11
2.1.2 画笔与画刷 13
2.1.3 GDI绘图函数 17
2.1.4 绘制位图 25
2.2 游戏画面特效制作 30
2.2.1 透明效果 30
2.2.2 半透明效果 34
2.2.3 透明半透明效果 41
2.3 游戏地图制作 46
2.3.1 平面地图贴图 46
2.3.2 斜角地图贴图 50
2.3.3 景物贴图 55
课后重点整理 59
3.1.1 定时器的使用 61
第3章 游戏动画技巧 61
3.1 基础动画显示 61
3.1.2 游戏循环 65
3.1.3 透明动画 69
3.2 动画显示问题 72
3.2.1 贴图坐标修正 72
3.2.2 排序贴图 74
3.3 背景动画设计 82
3.3.1 单一背景滚动 82
3.3.2 循环背景动画 85
3.3.3 多背景循环动画 89
课后重点整理 93
第4章 游戏输入消息处理 95
4.1 键盘输入消息 95
4.1.1 关于Windows中的键盘 95
4.1.2 键盘消息处理 96
4.2 鼠标输入消息 103
4.3 鼠标相关函数 105
4.3.1 获取窗口外鼠标消息 106
4.3.2 设定鼠标光标位置 106
4.3.4 限制鼠标光标移动区域 107
4.3.3 显示与隐藏鼠标光标 107
课后重点整理 115
第5章 游戏人工智能 117
5.1 移动型游戏AI 117
5.1.1 追逐移动 117
5.1.2 躲避移动 121
5.1.3 模式移动 122
5.2 行为型游戏AI 122
5.2.1 计算机角色的思考与行为 122
5.2.2 搜寻迷宫出口 136
5.3 策略型游戏AI 147
课后重点整理 167
第6章 游戏物理现象设计原理 169
6.1 物理运动 169
6.1.1 匀速运动 169
6.1.2 加速度运动 173
6.1.3 重力 174
6.1.4 摩擦力 176
6.2 物体间的碰撞 179
6.2.1 以范围检测碰撞 179
6.2.2 以颜色检测碰撞 182
6.2.3 以行进路线检测碰撞 186
6.2.4 与斜面碰撞后的速度 188
6.3 粒子的应用 191
6.3.1 粒子的定义 192
6.3.2 雪花纷飞 192
6.3.3 放烟火 194
课后重点整理 198
第7章 进入3D世界 199
7.1 初探DirectX 199
7.1.1 DirectX SDK简介 199
7.1.2 DirectX的特色 199
7.2.1 介绍Direct Graphics 200
7.2 使用Direct Graphics 200
7.2.2 如何建Direct Graphics设备 201
7.2.3 使用Direct Graphics取得绘图设备(GDI) 205
7.3 使用Direct Graphics进行2D影像处理 208
7.3.1 Direct Graphics绘图引擎 208
7.3.2 如何贴影像文件 208
7.4 Direct Graphics的颜色操作 216
7.4.1 Direct Graphics颜色操作流程 217
7.4.2 混色操作 217
7.4.3 材质基台操作 220
课后重点整理 223
第8章 Direct Graphics 3D的奇幻世界 225
8.1 迷人的3D魅力 225
8.1.1 三维空间概念 225
8.1.2 模型与顶点 225
8.1.3 3D世界的环境描述 226
8.1.4 顶点颜色的计算方法 228
8.1.5 加载一个X文件的模型 228
8.2 3D空间坐标的转换 232
8.2.1 Direct Graphics坐标转换管线 232
8.2.2 世界环境描述 233
8.3.3 视角环境描述 235
8.3.4 投射环境描述 236
8.4 Direct Graphics的色彩计算 238
8.4.1 颜色的决定因素 238
8.4.2 发射光的设定方式 238
8.4.3 表面材质的设定方法 241
课后重点整理 243
第9章 DirectSound的使用方式 245
9.1 开始建立DirectSound 245
9.1.1 建立DirectSound的第一步 245
9.1.2 DirectSound对象的建立 246
9.1.4 缓冲区的基本概念 247
9.1.3 设定程序协调层级 247
9.1.5 建立主缓冲区 248
9.1.6 WAVE声音文件的加载 250
9.1.7 建立次缓冲区 253
9.1.8 加载声音到次缓冲区 254
9.2 声音的播放与控制 255
9.2.1 播放声音功能 255
9.2.2 制作混音功能 255
9.2.3 控制声音功能 257
9.3.1 认识3D音效 262
9.3 3D音效的实际演练 262
9.3.2 建立倾听者功能 264
9.3.3 建立发声者 265
课后重点整理 269
第10章 DirectInput的使用方法 271
10.1 建立DirectInput程序 271
10.1.1 开始建立DirectInput程序 271
10.1.2 建立DirectInput对象 272
10.1.3 建立输入装置对象 273
10.1.4 资料格式的设定 273
10.1.6 输入装置的调用方法 274
10.1.5 设定程序协调层级 274
10.2 键盘与鼠标输入的取得方法 275
10.2.1 键盘输入的取得 275
10.2.2 取得鼠标输入 278
10.3 使用摇杆功能 282
10.3.1 取得摇杆装置 282
10.3.2 摇杆组件的列举方法 284
10.3.3 摇杆输入的取得 288
10.3.4 设定无效范围 290
课后重点整理 292
第11章 威力强大的DirectPlay DirectShow 293
11.1 DirectPlay初体验 293
11.1.1 DirectPlay的使用时机 293
11.1.2 DirectPlay的网络拓扑 293
11.1.3 网络联机游戏的构成 295
11.1.4 DirectPlay的组成模式 296
11.1.5 联机程序范例介绍 300
11.2 DirectShow的多媒体功能 310
11.2.1 DirectShow的架构 310
11.2.2 播放影片功能 312
课后重点整理 313
11.2.3 播放MP3 313
第12章 小游戏设计实例 315
12.1 俄罗斯方块游戏轻松做 315
12.2 抢娃娃游戏 330
附录A DirectDraw制作游戏秘籍大公开 349
A.1 程序中的各个自定义函数 349
A.1.1 初始化与建立DirectX对象 349
A.1.2 建立DirectDraw幕后暂存区 353
A.1.3 建立DirectSound次缓冲区 355
A.1.4 设定颜色键函数 357
A.2 绚丽的电流急急棒 357
A.2.1 游戏功能介绍 358
A.2.2 游戏功能设计方法 359
A.2.3 程序内容说明 360
A.3 太空射击游戏 366
A.3.1 游戏功能介绍 366
A.3.2 滚动背景的设计 368
A.3.3 怪物的产生与移动 368
A.3.4 子弹的产生 369
A.3.5 检测碰撞的方法 369
A.3.6 程序编写的方法 372
附录B 专业词汇 387
附录C 常用Windows虚拟键表 395