《Windows游戏编程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:李远静,莫诚生编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:7302090661
  • 页数:381 页
图书介绍:本书主要介绍了游戏开始的基本过程,内容包括用于运行游戏的Windows应用程序编程,目前流行的游戏开发接口DirectDraw DirectPnput和Direct Sound等的编程,寻路系统、人工智能、地图编辑器等等。全书由一个游戏例子贯穿始终,层次分明,由浅入深、实践性强、是很好的游戏编程入门书籍。

第1章 概述 1

1.1 游戏简史 1

1.2 游戏设计的要素 2

1.2.1 策划 2

1.2.2 程序 4

1.2.3 美工 4

1.2.4 音效 4

1.3 DirectX简介 5

1.3.1 DirectDraw 5

1.3.2 Direct3D 5

1.3.3 DirectSound 6

1.3.4 DirectMusic 6

1.3.5 DirectInput 6

1.3.6 DirectPlay 6

1.3.7 DirectSetup 6

1.4 玩者对象的考虑 6

1.4.1 学龄前(6岁以下) 7

1.4.2 小学早期阶段(5~8岁) 7

1.4.3 小学阶段(7~11岁) 7

1.4.4 青少年阶段(12~16岁) 7

1.4.5 青年阶段(16~24岁) 8

1.4.6 成人阶段(22岁以上) 8

1.5 游戏的界面设计 8

1.6 人工智能 9

1.7 场景结构 10

1.7.1 场景的生成方式 10

1.7.2 地面描述数据 10

1.7.3 地形描述数据 11

1.7.4 地面对象描述数据 12

1.8 场景描述数据的生成 12

1.9 本章小结 13

第2章 游戏的Windows代码 14

2.1 窗口与窗口类 14

2.1.1 注册窗口类 14

2.1.2 Windows窗口的创建 15

2.2 消息机制 18

2.3 消息处理函数 19

2.4 代码整理 20

2.4.1 定义CApplication类 20

2.4.2 初始化变量 23

2.4.3 创建应用程序窗口 25

2.4.4 主窗口的消息处理 28

2.4.5 默认的消息循环机制 31

2.5 具体应用 32

2.5.1 创建特定属性的窗口 32

2.5.2 载入图标和光标 36

2.5.3 使用菜单和对话框 38

2.6 本章小结 44

第3章 DirectDraw环境 45

3.1 基本概念 45

3.1.1 位图 45

3.1.2 表面(Surface) 47

3.1.3 位块 47

3.1.4 RGB值 48

3.2 使用DirectDraw的一般步骤 48

3.2.1 一般步骤 48

3.2.2 创建DirectDraw对象 49

3.2.3 设置协作等级 50

3.2.4 设置显示模式 52

3.2.5 创建主表面 53

3.2.6 创建后台翻转表面 54

3.2.7 翻转显示(Flip) 56

3.2.8 代码整理 56

3.3 高级DirectDraw 64

3.3.1 载入位图到表面 65

3.3.2 表面间的位块传送(Bit block transfer) 70

3.3.3 不规则外形的图像表示 75

3.3.4 裁剪器 78

3.3.5 设备性能查询 81

3.3.6 添加功能 85

3.4 DirectDraw的具体应用 90

3.5 本章小结 94

第4章 DirectInput交互 95

4.1 建立DirectInput的一般步骤 95

4.2 建立DirectInput 95

4.2.1 创建DirectInput对象 96

4.2.2 创建输入设备 96

4.2.3 设置数据格式 97

4.2.4 设置协作等级 98

4.2.5 设置缓冲数据方式的缓冲区大小 99

4.2.6 获得设备的访问权 101

4.3 检索设备的数据 101

4.3.1 检索立即数据 101

4.3.2 检索缓冲数据 105

4.4 代码整理 108

4.4.1 归类 108

4.4.2 初始化和释放资源 112

4.4.3 输入设备的整体操作 116

4.4.4 初始化键盘设备 118

4.4.5 检索键盘状态 121

4.4.6 初始化鼠标设备 123

4.4.7 检索鼠标状态 126

4.4.8 输入设备查询 130

4.5 应用示例 134

4.6 本章小结 145

第5章 声音的播放 146

5.1 预备知识 146

5.2 波形声音文件(WAVE) 147

5.3 DirectSound的建立 148

5.3.1 DirectSound的初始化 148

5.3.2 创建次级缓冲区 149

5.4 建立CDSound类 151

5.5 DirectSound的使用 156

5.5.1 构造与析构 156

5.5.2 设置初始化属性 159

5.5.3 DirectSound操作流程 160

5.5.4 载入波形文件数据 164

5.6 静态缓冲区的相关操作 166

5.6.1 设置静态缓冲区的个数 166

5.6.2 静态缓冲区的锁定、创建和释放 167

5.6.3 静态缓冲区的播放控制 171

5.6.4 静态缓冲区的声音属性调节 175

5.6.5 获取静态缓冲区 181

5.7 流式缓冲区的相关操作 181

5.7.1 流式缓冲区的结构 182

5.7.2 设置流式缓冲区的个数 184

5.7.3 流式缓冲区的创建、清空和释放 185

5.7.4 流式缓冲区的播放控制 190

5.7.5 调节整个流式数据的播放游标 195

5.7.6 设置流式缓冲区的音量 198

5.7.7 给流式缓冲区载入数据 200

5.8 应用示例 204

5.9 本章小结 212

第6章 基本框架 213

6.1 初步策划 213

6.1.1 游戏剧情 213

6.1.2 游戏规则 214

6.1.3 怪物种类 214

6.1.4 角色的属性 214

6.1.5 物品 215

6.1.6 地面类型及地面对象 215

6.1.7 战斗系统 215

6.1.8 角色以及怪物的表现要求 215

6.1.9 游戏的表现角度 216

6.2 图片的制作 216

6.3 角色动画 217

6.3.1 动画的表现 217

6.3.2 角色动画演示 217

6.4 场景 225

6.4.1 表现场景 225

6.4.2 场景移动与转换演示 226

6.5 立体效果 237

6.5.1 立体效果的表现 238

6.5.2 场景立体效果演示 241

6.6 本章小结 252

第7章 寻路算法 253

7.1 A-Star寻路算法 253

7.1.1 模仿人类的搜索 253

7.1.2 地形的表示 255

7.1.3 两种搜索方式的模拟 255

7.2 生成算法 258

7.2.1 建立CGetPath类 258

7.2.2 辅助函数和初始化 261

7.2.3 求“八个方块” 263

7.2.4 求“近”方块 267

7.2.5 Bresenham算法 268

7.2.6 求路径的末端 272

7.2.7 “步”的检测 273

7.2.8 “步”的下移 274

7.2.9 路径的样式 276

7.2.10 删除路径 278

7.2.11 半吸附式搜索 279

7.2.12 吸附式搜索 282

7.2.13 吸附式和半吸附式的结合搜索 284

7.2.14 综合寻路 286

7.3 寻路算法的使用 292

7.4 本章小结 300

第8章 生成游戏 301

8.1 文字显示系统 301

8.1.1 获得表面的设备内容 301

8.1.2 建立文字显示类 302

8.1.3 使用CText类 310

8.2 定义游戏类 313

8.3 生成游戏 319

8.3.1 辅助成员 319

8.3.2 游戏的开始画面 322

8.3.3 保存角色数据 324

8.3.4 载入角色数据 325

8.3.5 生成场景 326

8.3.6 删除场景 327

8.3.7 恢复变量 329

8.3.8 场景转换 329

8.3.9 升级系统 332

8.3.10 角色的行为 332

8.3.11 怪物的行为 336

8.3.12 显示实体以及文字 340

8.3.13 游戏进程 343

8.3.14 获取输入设备状态和更新屏幕 344

8.4 游戏演示 345

8.5 本章小结 348

第9章 地图编辑器 349

9.1 编辑 349

9.2 定义编辑类CEdit 349

9.3 场景属性描述的设置 355

9.4 地面的编辑 355

9.4.1 地面的构成方式 355

9.4.2 选择编辑方块 357

9.4.3 编辑地面 358

9.4.4 获得地面方块的源位置 360

9.5 对象的编辑 362

9.5.1 编辑对象 362

9.5.2 添加对象 363

9.5.3 删除对象 365

9.6 编辑开关区域 366

9.7 编辑角色出现区域 367

9.8 数据的保存与载入 368

9.8.1 保存场景数据 368

9.8.2 载入场景数据 369

9.9 编辑器进程 370

9.10 生成编辑器 371

9.11 载入场景文件到游戏 379

9.12 本章小结 381