《逐梦旅程 Windows游戏编程之从零开始》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:毛星云编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302337508
  • 页数:679 页
图书介绍:本书由浅入深,从基本概念开始讲解,寓教于乐,每个知识点都配有经典的游戏源码作为实例。让读者可以从零开始,边玩边学地熟稔Visual C++游戏开发。并且本书涵盖了市场上最新的DirectX11的讲解,使读者在第一时间接触到最新最前沿的游戏开发技术。同时本书将对游戏引擎技术进行剖析,对目前游戏市场里热门的几大游戏引擎都进行了深入浅出的讲解,让读者轻松迈入C++游戏开发的殿堂。

序篇 逐梦·游戏开发梦想的重量 3

第1章 高瞻远瞩——游戏开发面面观 3

1.1 逐梦——梦想让我们不孤单 4

1.1.1 现在的努力,就是为了证明小时候吹过的牛 4

1.1.2 为梦想,为国产游戏的未来,请把这本书读下去 4

1.2 游戏产业的黎明 5

1.3 游戏产业的分类——六大游戏市场 6

1.3.1 3A级游戏开发领域 6

1.3.2 社交和休闲游戏开发领域 8

1.3.3 移动游戏开发领域 9

1.3.4 功能型游戏开发领域 9

1.3.5 学术型游戏开发领域 10

1.3.6 独立型游戏开发领域 10

1.4 游戏平台与游戏开发编程语言的认知 11

1.5 对游戏类型的认知 12

1.6 游戏开发中图形API的概念 14

1.7 游戏编程学习路线总结 15

1.8 章节小憩 16

第一篇 起航·夯实游戏程序之根 19

第2章 开锋你的绝世名刃——Visual Studio开发环境的安装、配置 19

2.1 Visual Studio、VC++和C++的那些事儿 20

2.2 Visual Studio 2010的下载、安装与配置 21

2.2.1 下载Visual Studio 2010 21

2.2.2 安装Visual Studio 2010 22

2.2.3 初次配置Visual Studio 2010 25

2.2.4 Visual Studio 2010常用设置介绍 26

2.3 Visual Studio 2010使用指南 27

2.3.1 集成开发环境简介 27

2.3.2 Visual Studio界面概述 28

2.3.3 工具栏选项 29

2.4 百科全书——帮助文档与MSDN 30

2.4.1 MSDN的安装 31

2.4.2 离线查看MSDN的方法 33

2.4.3 使用MSDN帮助文档 34

2.5 Coding路上不孤单——强大的编程助手Visual AssistX 34

2.6 长征第一步——第一个程序的创建与编写 36

2.6.1 关于项目与解决方案 36

2.6.2 第一个程序的创建与编写 37

2.6.3 Visual Studio文件类型分析 41

2.7 章节小憩 42

第3章 启程——Windows编程基础 43

3.1 高瞻远瞩——Windows编程体系与游戏编程 44

3.2 理解两个术语——API与SDK 45

3.2.1 何为API 45

3.2.2 什么是SDK 46

3.3 Windows程序的“心脏”——WinMain函数 46

3.3.1 WinMain函数 46

3.3.2 MessageBox函数 49

3.3.3 PlaySound函数 51

3.3.4 示例程序Firstblood! 52

3.4.Windows程序的“外貌”——窗口 55

3.5 Winodows资源的“身份证”——句柄 55

3.6 Windows程序的“邮局”——消息与消息队列 56

3.6.1 消息的表示形式——MSG结构体 56

3.6.2 关于消息队列 58

3.7 步步为营——窗口创建四步曲 58

3.7.1 窗口类的设计 58

3.7.2 窗口类的注册 63

3.7.3 窗口的正式创建 64

3.7.4 窗口的显示和更新 66

3.8 各有千秋——两套消息循环体系 68

3.8.1 以GetMessage为核心的消息循环体系 69

3.8.2 以PeekMessage为核心的消息循环体系 71

3.9 Windows程序的“中枢神经”——窗口过程函数 73

3.10 做好善后——窗口类的注销 75

3.11 牛刀小试——一个完整的窗口程序的诞生 76

3.1 2小不忍则乱大谋——关于命名规范 80

3.1 3章 节小憩 82

第二篇 初探·GDI2D游戏编程 85

第4章 入门心法——Windows游戏图形基础 85

4.1 Windows图形设备接口(GDI) 86

4.1.1 GDI的初印象 86

4.1.2 用GDI写游戏的认知 86

4.1.3 关于GDI+ 87

4.1.4 GDI的特点 87

4.1.5 GDI中的基本图形 88

4.1.6 GDI的函数分类 89

4.2 设备环境(DC) 90

4.2.1 设备环境的基本概念 90

4.2.2 获取设备环境句柄(HDC)的两种方式 91

4.3 Windows屏幕区域相关概念阐述 94

4.3.1 屏幕区、窗口区与客户区 94

43.2 坐标点与坐标变换 94

4.4 写一个GDI程序通用框架 95

4.5 GDI基本几何绘图 100

4.5.1 创建画笔 100

4.5.2 创建画刷 101

4.5.3 图形对象的选择 102

4.5.4.绘制图形和线条 103

4.6 游戏随机数系统初步 105

4.6.1 游戏中的随机系统概述 105

4.6.2 随机系统初步 106

4.6.3 几种随机数的简单算法 108

4.6.4 产生一定范围内随机数的通用算法公式 109

4.6.5 总结 109

4.6.6 示例程序GDIdemo1 110

4.7 文字的输出 113

4.7.1 最常用文字输出函数TextOut 114

4.7.2 进阶文字输出函数 114

4.7.3 设置文字颜色 115

4.7.4 设置文字背景透明 116

4.7.5 字体的创建 116

4.7.6 总结 117

4.7.7 示例程序GDIdemo2 119

4.8 位图绘制基础 120

4.8.1 位图绘制四步曲 121

4.8.2 示例程序GDIdemo3 125

4.9 消除闪烁:缓冲显示技术 127

4.10 章 节小憩 128

第5章 遮羞的艺术——Windows游戏绘图技巧 129

5.1 透明贴图的两套体系 130

5.2 透明遮罩法 130

5.2.1 具体实现细节 131

5.2.2 示例程序GDIdemo4 134

5.3 透明色彩法 137

5.3.1 具体实现细节 137

5.3.2 示例程序GDIdemo5 139

5.4 自己动手处理图片素材 141

5.4.1 游戏素材的来源 142

5.4.2 Photoshop图像处理软件 142

5.4.3 处理游戏素材图片 143

5.5 章节小憩 150

第6章 光与影的交汇——Windows游戏动画技术 151

6.1 定时器动画显示 152

6.1.1 创建定时器 152

6.1.2 WM TIMER消息响应 153

6.1.3 删除定时器 154

6.1.4 示例程序GDIdemo6 155

6.2 游戏循环动画显示 161

6.3 透明动画 165

6.4 排序贴图 169

6.5 章节小憩 175

第7章 做游戏的主人——Windows游戏输入消息处理 176

7.1 Windows键盘消息处理 177

7.1.1 虚拟键码与键盘消息 177

7.1.2 键盘消息处理 181

7.1.3 示例程序GDIdemo10 182

7.2 Windows鼠标消息处理 187

7.2.1 鼠标消息的处理方式 187

7.2.2 鼠标相关常用函数讲解 189

7.3 章节小憩 199

第8章 玄妙的物理——物理建模与粒子系统初步 201

8.1 基础物理建模初步 202

8.1.1 匀速与加速运动模拟 202

8.1.2 重力系统模拟 207

8.1.3 摩擦力系统模拟 210

8.2 粒子系统初步 214

8.2.1 基本概念 214

8.2.2 雪花飞舞示例程序 215

8.2.3 星光绽放示例程序 219

8.3 章节小憩 224

第9章 梦的初现——开发回合制游戏《勇者斗恶龙》 225

9.1 设计游戏登场角色 226

9.2 设计主角角色技能 228

9.2.1 “无敌斩”角色技能设计 228

9.2.2 “烈火剑法”角色技能设计 228

9.2.3 “气疗术”角色技能设计 229

9.2.4 “恩赐解脱”角色技能设计 229

9.3 设计反派角色技能 230

9.3.1 人工智能技术一瞥 230

9.3.2 反派人物AI的设计 232

9.3.3 “幽冥鬼火”反派技能设计 233

9.3.4 “嗜血咒”反派技能设计 233

9.3.5 “致命一击”反派技能设计 234

9.3.6 “使用梅肯斯姆”反派技能设计 234

9.4 书写游戏程序实现代码 235

9.4.1 游戏资源的初始化 235

9.4.2 功能函数的实现 238

9.4.3 游戏主体部分的实现 240

9.4.4 游戏窗口过程函数的实现 244

9.4.5 玩家动作逻辑与技能特效绘图函数的实现 245

9.4.6 反派动作逻辑与绘图函数的实现 248

9.5 整合代码,完成游戏开发 251

9.6 玩游戏 269

9.7 游戏打法攻略、改进与素材 271

9.8 章节小憩 272

第三篇 飞跃·DirectX游戏编程基础 275

第10章 快到碗里来——DirectX大局观认知 275

10.1 对DirectX的认知 276

10.1.1 DirectX的目前地位 276

10.1.2 DirectX的两种不同含义 277

10.1.3 DirectX的几套开发方案 278

10.1.4 图形API体系认知 278

10.1.5 微软的宠儿——DirectX 279

10.1.6 不甘做备胎——OpenGL 279

10.2 宿敌的世纪之斗:DirectX与OpenGL的博弈 280

10.3 DirectX开发环境的配置 282

10.4 新版DirectX SDK的组件介绍 286

10.4.1 新版DirectX SDK中现存的组件 286

10.4.2 新版DirectX SDK中被移除的组件 288

10.4.3 关于当前2D游戏开发可用的图形API 289

10.5 对DirectX SDK文件组成的剖析 289

10.6 让DirectX SDK物尽其用 294

10.7 选择我们的DirectX学习版本 295

10.7.1 DirectX的几套版本简介 295

10.7.2 DirectX11 vs DirectX9,现阶段学哪个好 295

10.8 当前Direct3D中的两套渲染体系 297

10.9 Direct3D程序的体系结构 298

10.10 学习DirectX的两个技巧 300

10.11 章 节小憩 300

第11章 三维内功心法——Direct3D编程基础 301

11.1 典型Direct3D程序流程分析 302

11.2 对COM接口对象的一些介绍 303

11.3 写一个DirectX程序通用框架 304

11.4 化腐朽为神奇——Direct3D初始化四步曲 310

11.4.1 Direct3D初始化四步曲概述 310

11.4.2 Direct3D初始化四步曲之一:创接口 310

11.4.3 Direct3D初始化四步曲之二:取信息 311

11.4.4 Direct3D初始化四步曲之三:填内容 313

11.4.5 Direct3D初始化四步曲之四:创设备 315

11.4.6 Direct3D初始化四步曲代码赏析 316

11.4.7 示例程序D3Ddemo1 317

11.5 深入理解Direct3D动画显示技术——交换链 319

11.6 对固定功能渲染流水线体系的理解 321

11.7 Direct3D中的“绘制金钥匙”——Direct3D设备接口 322

11.8 Direct3D中二维文本的绘制 323

11.8.1 D3DXCreateFont函数 324

11.8.2 DrawText函数 325

11.9 起承转合的艺术:Direct3D渲染五步曲 326

11.9.1 Direct3D渲染五步曲概述 326

11.9.2 五步曲之一:清屏操作 327

11.9.3 五步曲之二:开始绘制 329

11.9.4 五步曲之三:正式绘制 329

11.9.5 五步曲之四:结束绘制 330

11.9.6 五步曲之五:翻转显示 330

11.9.7 Direct3D渲染五步曲代码整体赏析 331

11.9.8 示例程序D3Ddemo2 331

11.10 章 节小憩 337

第12章 腾飞前的助跑——Direct3D绘制基础 338

12.1 顶点缓存的逆袭 339

12.1.1 引言 339

12.1.2 顶点缓存相关基础知识 339

12.1.3 顶点缓存使用四步曲之一:设计顶点缓存 340

12.1.4 顶点缓存使用四步曲之二:创建顶点缓存 342

12.1.5 顶点缓存使用四步曲之三:访问顶点缓存 345

12.1.6 顶点缓存使用四步曲之四:图形的绘制 347

12.1.7 示例程序D3Ddemo3 350

12.2 索引缓存——顶点缓存的红颜知己 354

12.2.1 引言 354

12.2.2 索引缓存的使用思路 356

12.2.3 相濡以沫的顶点缓存与索引缓存 357

12.2.4.双剑合璧:顶点缓存、索引缓存使用四步曲 359

12.2.5 示例程序D3Ddemo4 367

12.3 章节小憩 371

第13章 迈向三维世界——Direct3D的四大变换 372

13.1 四大变换的基本认知 373

13.2 四大变换之一:世界变换 373

13.2.1 矩阵的平移 375

13.2.2 矩阵的旋转 376

13.2.3 矩阵的缩放 377

13.3 四大变换之二:取景变换 378

13.4 四大变换之三:投影变换 379

13.5 四大变换之四:视口变换 381

13.6 总结 382

13.7 示例程序D3Ddemo5 382

13.8 章节小憩 389

第14章 绘制出质感的世界——光照与材质 390

14.1 引言 391

14.2 四大光照类型 391

14.3 三大光源类型 393

14.4 材质 398

14.5 关于顶点法线 399

14.6 总结与升华 402

14.7 几何体的快捷绘制 402

14.7.1 D3D中内置的几何体概述 402

14.7.2 D3D中几种内置的几何体绘制四步曲 403

14.7.3 D3D 中几种内置几何体的创建 404

14.8 示例程序D3Ddemo7 415

14.9 章节小憩 420

第15章 做游戏的主人——输出控制利器Directlnput 421

15.1 引言 422

15.2 Directlnput接口概述 422

15.3 Directlnput使用步骤详解 424

15.3.1 头文件和库文件的包含 424

15.3.2 创建Directlnput接口和设备 424

15.3.3 设置数据格式 427

15.3.4 设置协作级别 427

15.3.5 设置特殊属性 428

15.3.6 获取和轮询设备 429

15.3.7 读取设备信息 429

15.4 精炼:Directlnput使用五步曲 431

15.5 Directlnput键盘按键键值总结 433

15.6 Directlnput鼠标按键键值总结 434

15.7 示例程序D3Ddemo8 435

15.8 手把手封装Directlnput到类中 440

15.9 封装好的Directlnput类的使用 444

15.10 示例程序D3Ddemo9 445

15.11 章节小憩 451

第16章 起舞不落幕——与纹理映射的华丽邂逅 452

16.1 纹理映射的概念 453

16.2 纹理映射使用四步曲 454

16.3 总结与升华 459

16.4 示例程序D3Ddemo10 461

16.5 四大纹理过滤方式精讲 472

16.6 四大纹理寻址方式精讲 477

16.7 纹理映射知识总结 480

16.8 示例程序D3Ddemo11 483

16.9 章节小憩 489

第17章 他山之石可攻玉——三维游戏模型的载入 490

17.1 网格模型技术的前生今世 491

17.2 认识三维建模软件3DS Max和Maya 491

17.3 对X文件的认识 494

17.4 从3DS Max中导出X文件方法详解 495

17.5 网格模型接口ID3DXMESH 498

17.6 文件模型载入三步曲 500

17.6.1 三步曲之一:通过×文件加载网格模型 500

17.6.2 三步曲之二:载入材质和纹理 501

17.6.3 三步曲之三:绘制网格模型 502

17.6.4 总结与升华 504

17.7 示例程序D3demo12 505

17.8 章节小憩 510

第18章 水乳交融的艺术——Alpha混合技术 511

18.1 初识Alpha通道与混合技术 512

18.2 Direct3D中的融合套路——融合因子 512

18.3 融合运算方式的取法 513

18.4 融合因子的取法 514

18.5 Alpha的三处来源 515

18.6 Alpha融合使用三步曲 517

18.7 示例程序D3Ddemo13 518

18.8 章节小憩 521

第19章 横看成岭侧成峰——深度测试与Z缓存 522

19.1 形象化理解深度测试 523

19.2 深度测试相关概念讲解 523

19.3 深度测试使用四步曲 524

19.4 示例程序D3Ddemo14 527

19.5 章节小憩 529

第20章 虚实结合的光影——模板技术 530

20.1 对模板技术中概念的理解 531

20.1.1 模板缓存 531

20.1.2 模板测试 531

20.2 模板测试精细讲解 532

20.2.1 创建模板缓冲区 532

20.2.2 清除模板缓冲区 533

20.2.3 模板测试相关参数介绍 534

20.2.4 对模板测试的一些理解 537

20.3 镜面特效的实现 538

20.4 通过实例程序讲解 539

20.5 示例程序D3Ddemo15 543

20.6 章节小憩 548

第四篇 致用·DirectX游戏编程应用 551

第21章 翱翔于三维空间——游戏摄像机的构建 551

21.1 对摄像机的一些概述 552

21.2 开始设计摄像机类 552

21.3 关于向量计算的函数讲解 555

21.4 计算取景变换矩阵 557

21.5 类的其余实现细节 560

21.6 示例程序D3Ddemo16 566

21.7 章节小憩 574

第22章 钟灵毓秀的世界——三维地形的构建 575

22.1 三维地形绘制思路分析 576

22.2 关于高度图 577

22.2.1 高度图的概念 577

22.2.2 高度图的制作 578

22.2.3 用Photoshop制作高度图 579

22.2.4 在程序中读取高度图 581

22.3 地形类轮廓的书写 582

22.4 地形顶点的计算 583

22.5 地形索引的计算 585

22.6 渲染出地形 587

22.7 完成地形类的设计 588

22.8 示例程序D3Ddemo17 592

22.9 章节小憩 597

第23章 向碧蓝的苍穹致敬——三维天空的构建 598

23.1 三维天空技术阐述 599

23.2 天空盒的设计 600

23.3 天空盒类的实现 603

23.4 天空盒类的使用 609

23.5 示例程序D3Ddemo18 609

23.6 章节小憩 615

第24章 让唯美的雪花飘扬——三维粒子系统的实现 616

24.1 对粒子系统的基本认知 617

24.2 粒子系统的基本原理 618

24.3 雪花粒子系统的设计 620

24.4 雪花粒子系统的实现 623

24.5 雪花飞扬粒子类的使用 628

24.6 示例程序D3Ddemo19 629

24.7 章节小憩 635

第25章 造物主的降临——多游戏模型的载入 636

25.1 网格模型的优化 637

25.2 网格模型的克隆 639

25.3 文件模型载入类的设计 640

25.4 文件模型载入类的实现 641

25.5 文件模型载入类的使用 645

25.6 示例程序D3Ddemo20 646

25.7 章节小憩 652

第五篇 升华·致我们的游戏开发梦想 655

第26章 站在巨人肩膀上——游戏引擎技术导论 655

26.1 游戏引擎的起源、意义和概念 656

26.1.1 游戏引擎的起源和意义 656

26.1.2 游戏引擎的概念理解 656

26.1.3 一款完善的游戏引擎的构成 657

26.1.4 DirectX与游戏引擎的区别 657

26.2 人气开源游戏引擎介绍 657

26.3 游戏引擎排名的权威榜单一瞥 659

26.4 优秀的免费/开源第一人称射击游戏介绍 661

26.5 关于游戏引擎的一些思考 664

26.6 市面上各类游戏引擎完全列举 665

附录A进阶游戏编程书籍总结与推荐 668

A.1 零基础游戏编程学习大体阶段概括 669

A.2 Windows游戏编程入门书籍推荐 670

A.3 游戏编程进阶书籍推荐 670

A.3.1 DirectX入门 670

A.3.2 地形方面 671

A.3.3 物理方面 671

A.3.4 数学方面 672

A.3.5 引擎设计方面 672

A.3.6 实时渲染方面 673

A.3.7 图形学方面 673

A.3.8 Al方面 673

A.3.9 网络方面 674

A.3.10 系列书籍方面 674

A.3.11 策划方面 675

A.3.12 美工方面 675

A.3.13 小说&电影 675

A.3.14 其他 676

A.4 开源游戏源代码推荐 676

后记 总有一天你将破蛹而出 678