目录 1
第1章 开篇辟意[内容简介] 1
1-1 前面的话 2
1-1-1 网络游戏谱写的财富神话 2
1-1-2 你也可以编游戏 3
1-2 本书内容、技术知识提要 5
1-3 本书重点 6
1-4 为什么要选择VC++ 7
第2章 我来了(显示图形) 9
2-1 任务 10
2-2 用VC建立程序框架 10
2-2-1 创建一个程序 10
2-2-2 程序框架简介 12
2-2-3 编译运行程序 13
2-3 将游戏角色显示出来 14
2-3-1 图形操作的基本方法 15
2-3-2 调入图形文件 17
2-3-3 显示图形 20
2-3-4 程序的主要结构 22
2-3-5 编译运行程序 25
2-4 流程图 26
2-5 小结 26
第3章 让我动吧[产生动画] 27
3-1 任务 28
3-2 建立时钟消息 28
3-3 让角色动起来 29
3-3-1 变化的文件名 29
3-3-2 getpic(...)调图片到相关位图 30
3-3-3 可以动了 31
3-3-4 OnOK()启动时钟 32
3-4 窗口、控件的基本操作 32
3-5 “让我动吧Dlg.cpp”完整的程序和注释 33
3-5-1 全局定义 33
3-5-2 程序的初始入口 34
3-5-3 OnOK()确定键 36
3-5-4 OnCancel()退出程序 36
3-5-5 时钟函数 36
3-5-6 调图片到相关位图 37
3-5-7 调BMP图片 37
3-6 有关程序运行时的目录 38
3-7 流程图 39
3-8 小结 40
第4章 别给我框框[透明显示] 41
4-1 任务 42
4-2 透明显示位图 42
4-2-1 透明显示位图的原理 42
4-2-2 透明显示位图的功能函数 45
4-3 屏幕刷新 48
4-4 程序的编译模式 50
4-4-1 DEBUG调试模式 50
4-4-2 Release发布模式 51
4-4-3 编译模式的设置 51
4-4-4 设置目标程序(*.exe)的存贮目录 52
4-5 流程图 53
4-6 小结 54
第5章 走四方[角色移动] 55
5-2-1 建立鼠标左键按键消息 56
5-1 任务 56
5-2 角色的移动 56
5-2-2 角色定义 57
5-2-3 角色移动 59
5-3 角色的动作变化 61
5-3-1 动作转换函数 61
5-3-2 人物图形规律分析 62
5-3-3 动物图形偏移值 65
5-3-4 在时钟消息中加入角色移动和动作转换 67
5-4 小结 70
第6章 穿越丛林(角色遮挡) 71
6-2 类文件 72
6-2-1 建立类文件 72
6-1 任务 72
6-2-2 类文件的使用 74
6-2-3 初始化场景 76
6-2-4 多对象处理 80
6-3 对象遮挡 82
6-3-1 冒泡法排序 83
6-3-2 解决对象遮挡 84
6-4 游戏类库 85
6-4-1 game.cpp 85
6-4-2 game.h 97
6-4-3 常数定义.h 99
6-5 小结 100
第7章 广阔天地(地图移动) 101
7-2 单块地图无缝延伸法 102
7-2-1 大地图的拼接 102
7-1 任务 102
7-2-2 拼接地图的移动 103
7-3 微缩地图 105
7-3-1 生成微缩地图 106
7-3-2 显示微缩地图 108
7-4 移动地图 109
7-4-1 建立消息截获函数 110
7-4-2 移动地图功能函数 112
7-4-3 快速定位地图 113
7-5 对主程序的修改 113
7-5-1 OnTimer(...)时钟函数中的改动 114
7-5-2 OnLButtonDown(...)中的改动 115
7-6 类的继承和地图类 116
7-5-3 OnCancel()退出确认 116
7-6-1 类的继承一子类 117
7-6-2 继承类(子类)的调用 117
7-6-3 game_地图.cpp 118
7-6-4 game_地图.h 125
7-7 小结 126
第8章 脚踏实地[路径搜索] 127
8-1 任务 128
8-2 设置障碍 128
8-2-1 场景中的障碍点 128
8-2-2 障碍点的数字化模型 129
8-2-3 调入障碍表的函数 130
8-3 A*搜索算法 132
8-3-1 findpath()A*搜索 132
8-3-2 加入A*算法寻路 133
8-3-3 FindPath(q,x,y)A*算法寻路 135
8-3-4 搜索算法.cpp 137
8-3-5 搜索算法.h 140
8-4 动物在场景中随机运动 142
8-4-1 随机数发生器rand() 142
8-4-2 randxy()随机产生动物的移动目标点 142
8-5 选择地图 143
8-6 OnTimer(...)时钟函数中的时钟段 145
8-7 图形光标 147
8-7-1 新建光标 147
8-7-2 画光标 148
8-7-3 定义光标变量 148
8-7-4 调入图形光标 149
8-7-5 图形光标的使用 149
8-8 小结 150
第9章 狩猎谋生[角色打斗] 151
9-1 任务 152
9-2 碰撞检测 152
9-2-1 碰撞检测的原理 153
9-2-2 碰撞检测程序注释 154
9-3 半透明显示的技术 154
9-3-1 半透明函数AlphaBlend() 155
9-3-2 半透明的实例说明 156
9-3-3 Alphasetobj(...)对象显示 157
9-3-4 Alphasetobj(...)注释 158
9-4 MIDI背景音乐播放方法 159
9-5 又一种选择调入地图的方法 160
9-5-1 建立对话框资源 161
9-5-2 添加资源类文件 162
9-5-3 模态对话框的调用方法 164
9-5-4 通过模态对话框调入地图 164
9-5-5 setmap类的程序 165
9-6 小结 168
第10章 快一点(资源打包) 169
10-1 任务 170
10-2 图形资源的打包 170
10-2-1 资源打包程序简介 170
10-2-2 选择目录 172
10-2-3 资源打包的程序主结构 173
10-2-4 主结构程序注释 174
10-2-5 LoadBnp压缩打包函数 175
10-2-6 压缩打包函数注释 177
10-3 图形压缩包的使用 178
10-3-1 调压缩资源包 179
10-3-2 压缩图形的相关变量定义 181
10-3-3 调压缩图片getpic0(...) 181
10-4 小结 184
第11章 再快一点[DirectX技术] 185
11-1 任务 186
11-2 认识DirectX 186
11-3 建立DirectX环境 187
11-3-1 InitDDraw(void)初始化DirectDraw环境 187
11-3-2 InitDDraw(void)注释 189
11-3-3 定义指定高宽的缓存页面Surface(...)函数 190
11-3-4 gema.h中与DirectX有关的类变量 191
11-3-5 还需要什么 191
11-4-2 DX缓存页面间的拷贝 192
11-4-1 将GDI设备图形装入DX缓存页面 192
11-4 页面内容的拷贝 192
11-5 在我们的游戏中使用DirectX 193
11-5-1 将对象图形调入对象缓存页面DXSgonh 193
11-5-2 Alphasetobj(int q,int a)对象显示的修改 194
11-5-3 Alpha(int x,inty)DX半透明显示函数 195
11-5-4 BklToPr(...)主缓存页面到主页面函数 197
11-5-5 地图块移动拼接的DX方法 198
11-5-6 调地面块到背景地图页面DXSBack0 199
11-6 小结 200
第12章 真的打呀[角色的生命] 201
12-1 任务 202
12-2 加入生命值后相关函数的改变 202
12-2-1 对象显示函数中的修改 202
12-2-2 有关对象倒地和残体化解的其他函数的修改 206
12-3 调地图函数中加生命值和添加道具 207
12-3-1 生命值攻击力定义 207
12-3-2 调入地图函数的修改 208
12-3-3 新加的添加物品函数 208
12-4 打斗时生命值的改变 209
12-5 调入、读取物品资源压缩包 211
12-6 在主界面显示人的生命值 212
12-6-1 时钟函数的修改 212
12-6-2 新加主界面上显示生命值函数 213
12-7 小结 215
第13章 指点江山[地图编辑器] 217
13-1 任务 218
13-2 新建地图 218
13-2-1 新建地图 219
13-2-2 设置新地图的相关数据 220
13-2-3 选择地面风格的方法 222
13-3 编辑地图 223
13-3-1 showline()显示编辑 223
13-3-2 显示编辑方格注释 225
13-3-3 编辑障碍点 226
13-3-4 选择对象和编辑对象 227
13-4 添加对象 231
13-4-1 显示选择对象 231
13-4-2 Insert(...)添加对象 234
13-4-3 添加景物、动物转换 235
13-4-4 对象选择滚动条 235
13-5 保存地图 237
13-5-1 存文件通用对话框 237
13-5-2 savemap(...)保存地图函数 238
13-6 小结 240
附录 242
附录A VC++程序调试方法 242
附A1 使用编译、连接的出错信息 242
附A2 使用消息MessageBox()函数进行运行时调试 247
附A3 设置断点进行单步调试 248
附录B 本书使用到的VC知识汇集 254
附B1 创建程序和消息 254
附B2 编译运行 255
附B3 变量类型 255
附B4 函数定义和类 256
附B5 MFC和API函数 256
附B6 常用的功能函数源程序 259
附B7 VC窗口、控件的基本操作命令 264