游戏编程入门

游戏编程入门 pdf epub mobi txt 电子书 下载 2026

出版者:机械工业出版社
作者:Jonathan S. Harbour
出品人:
页数:288
译者:陈征
出版时间:2011-1
价格:55.00元
装帧:平装
isbn号码:9787111328605
丛书系列:
图书标签:
  • 游戏编程
  • 游戏开发
  • C/C++
  • 编程
  • 计算机-编程
  • 计算机
  • BZ
  • IT
  • 游戏编程
  • 入门
  • C++
  • 游戏开发
  • 编程基础
  • 游戏引擎
  • DirectX
  • OpenGL
  • Unity
  • Unreal Engine
  • 初学者
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《游戏编程入门(原书第3版)》向初出茅庐的游戏开发人员展示了将游戏思想从概念转变为现实的方法。《游戏编程入门(原书第3版)》涵盖了使用DirectX编写代码创建2D和3D游戏所需的所有技能,而读者只需基本掌握C++语言即可学会游戏的每个元素都按部就班地在书中讲授——从学习如何创建简单的Windows程序,到使用关键的DirectX组件来渲染2D和3D,再到给游戏添加声音。通过学习《游戏编程入门(原书第3版)》讲授的技能,读者可以开发出属于自己的用于构建将来的游戏项目的游戏库。《游戏编程入门(原书第3版)》在每章结束时新增了测验题和项目以便帮助读者实践新学到的技能!《游戏编程入门(原书第3版)》最后部分通过创建一个完整的、全功能的游戏来实践所介绍的新技能。

作者简介

Jonathan S.Harbour,编写过许多编程方面的书籍,并且教授这方面的课程,包括DirectX、Allegro、Python、LUA、DarkBASIC、多游戏者网络、XNAGameStudio以及Java。

目录信息

译者序

欢迎前来冒险
第一部分 Windows和DirectX游戏编程引言
第1章 Windows初步 2
1.1 Windows编程概述 2
1.1.1 认识Windows 3
1.1.2 Windows消息机制 4
1.1.3 多任务 5
1.1.4 多线程 6
1.1.5 事件处理 7
1.2 DirectX快速概览 8
Direct3D是什么 9
1.3 Windows程序基础 9
1.3.1 创建第一个Win32项目 10
1.3.2 理解WinMain 16
1.3.3 完整的WinMain 17
1.4 你所学到的 19
1.5 复习测验 19
1.6 自己动手 19
第2章 侦听Windows消息 20
2.1 编写一个真正的Windows程序 20
2.1.1 理解InitInstance 23
2.1.2 理解MyRegisterClass 25
2.1.3 晒一晒WinProc的秘密 27
2.2 什么是游戏循环 31
2.2.1 老的WinMain 31
2.2.2 WinMain和循环 33
2.3 GameLoop项目 35
GameLoop程序的源代码 36
2.4 你所学到的 42
2.5 复习测验 42
2.6 自己动手 43
第3章 初始化Direct3D 44
3.1 初识Direct3D 44
3.1.1 Direct3D接口 44
3.1.2 创建Direct3D对象 45
3.1.3 让Direct3D转起来 47
3.1.4 全屏模式的Direct3D 55
3.2 你所学到的 56
3.3 复习测验 56
3.4 自己动手 57
第二部分 游戏编程工具箱
第4章 绘制位图 60
4.1 表面和位图 60
4.1.1 主表面 61
4.1.2 从离屏(off-screen)表面 62
4.1.3 Create_Surface示例 64
4.1.4 从磁盘装载位图 68
4.1.5 Load_Bitmap程序 69
4.1.6 代码再利用 73
4.2 你所学到的 73
4.3 复习测验 73
4.4 自己动手 73
第5章 从键盘、鼠标和控制器获得输入 74
5.1 键盘输入 74
5.1.1 DirectInput对象和设备 74
5.1.2 初始化键盘 75
5.1.3 读取键盘按键 77
5.2 鼠标输入 77
5.2.1 初始化鼠标 77
5.2.2 读取鼠标 78
5.3 Xbox 360控制器输入 79
5.3.1 初始化XInput 80
5.3.2 读取控制器状态 81
5.3.3 控制器振动 82
5.3.4 测试XInput 82
5.4 精灵编程简介 88
5.4.1 一个有用的精灵结构 90
5.4.2 装载精灵图像 91
5.4.3 绘制精灵图像 91
5.5 Bomb Catcher游戏 92
5.5.1 MyWindows.cpp 93
5.5.2 MyDirectX.h 95
5.5.3 MyDirectX.cpp 97
5.5.4 MyGame.cpp 103
5.6 你所学到的 107
5.7 复习测验 107
5.8 自己动手 108
第6章 绘制精灵并显示精灵动画 109
6.1 什么是精灵 109
6.2 装载精灵图像 109
6.3 透明的精灵 111
6.3.1 初始化精灵渲染器 112
6.3.2 绘制透明的精灵 113
6.4 绘制动画的精灵 120
6.4.1 使用精灵表 120
6.4.2 精灵动画演示 123
6.5 你所学到的 126
6.6 复习测验 126
6.7 自己动手 126
第7章 精灵变换 127
7.1 精灵旋转和缩放 127
7.1.1 2D变换 129
7.1.2 绘制变换了的精灵 132
7.1.3 Rotate_Scale_Demo程序 134
7.1.4 带有变换的动画 136
7.2 你所学到的 139
7.3 复习测验 140
7.4 自己动手 140
第8章 检测精灵碰撞 141
8.1 边界框碰撞检测 141
8.1.1 处理矩形 141
8.1.2 编写碰撞函数 142
8.1.3 新的精灵结构 143
8.1.4 为精灵的缩放进行调整 144
8.1.5 边界框演示程序 144
8.2 基于距离的碰撞检测 148
8.2.1 计算距离 149
8.2.2 编写计算距离的代码 149
8.2.3 测试基于距离的碰撞 150
8.3 你所学到的 151
8.4 复习测验 151
8.5 自己动手 151
第9章 打印文本 153
9.1 创建字体 153
9.1.1 字体描述符 153
9.1.2 创建字体对象 154
9.1.3 可重用的MakeFont函数 154
9.2 使用ID3DXFont打印文本 155
9.2.1 使用DrawText打印 155
9.2.2 文本折行 156
9.3 测试字体输出 156
9.4 你所学到的 159
9.5 复习测验 160
9.6 自己动手 160
第10章 卷动背景 161
10.1 卷动 161
10.1.1 背景和布景 162
10.1.2 从图片单元创建背景 162
10.1.3 基于图片单元的卷动 163
10.1.4 基于图片单元的卷动项目 163
10.2 动态渲染图片单元 168
10.2.1 图片单元地图 169
10.2.2 使用Mappy创建图片单元地图 170
10.2.3 Tile_Dynamic_Scroll项目 174
Tile_Dynamic_Scroll源代码 175
10.3 基于位图的卷动 180
10.3.1 基于位图的卷动理论 180
10.3.2 位图卷动演示 181
10.4 你所学到的 184
10.5 复习测验 184
10.6 自己动手 184
第11章 播放音频 186
11.1 使用DirectSound 186
11.1.1 初始化DirectSound 187
11.1.2 创建声音缓冲区 187
11.1.3 装载波形文件 188
11.1.4 播放声音 188
11.2 测试DirectSound 189
11.2.1 创建项目 189
11.2.2 修改MyDirectX文件 191
11.2.3 修改MyGame.cpp 193
11.3 你所学到的 199
11.4 复习测验 199
11.5 自己动手 199
第12章 3D渲染基础 200
12.1 3D编程介绍 200
12.1.1 3D编程的关键组成部分 200
12.1.2 3D场景 201
12.1.3 转移到第三维 204
12.1.4 掌握3D管线 205
12.1.5 顶点缓冲区 206
12.1.6 渲染顶点缓冲区 208
12.1.7 创建四边形 209
12.2 带纹理的立方体示例 211
MyGame.cpp 213
12.3 你所学到的 219
12.4 复习测验 219
12.5 自己动手 220
第13章 渲染3D模型文件 221
13.1 创建及渲染后援网格 221
13.1.1 创建后援网格 221
13.1.2 渲染后援网格 223
13.1.3 Stock_Mesh程序 224
13.2 装载并渲染模型文件 226
13.2.1 装载.X文件 226
13.2.2 渲染完整的模型 231
13.2.3 从内存中删除一个模型 231
13.2.4 Render_Mesh程序 232
13.3 你所学到的 239
13.4 复习测验 239
13.5 自己动手 240
第三部分 游 戏 项 目
第14章 Anti-Virus(反病毒)游戏 242
14.1 Anti-Virus游戏 242
14.1.1 游戏玩法 243
14.1.2 游戏源代码 251
14.2 你所学到的 264
14.3 复习测验 264
14.4 自己动手 264
第四部分 附 录
附录A 配置Visual C++ 268
附录B 可进一步学习的资源 274
附录C 各章测验答案 278
附录D 附加示例 287
· · · · · · (收起)

读后感

评分

翻译很生硬, 还有点错误, 内容算游戏入门, 但前提你得了解Directx9.0, 不了解Directx9.0到后面你就不知道作者在讲什么, 作者前面讲的还是很细, 每个API什么的都讲解下, 介绍下, 到后面就省略了很多, 所以建议大家了解Directx在看吧, 里面的几个游戏例子还是不错, ...

评分

为什么这本书会是评价最少的呢,类似的游戏开发入门的书翻了不少,只发现有这一本才是作者真正从入门的角度,一步一步带着读者探索游戏开发世界的奥秘的。比起国内的一些明显是东拼西凑起来的书,读这本书的时候,字里行间真的有一种跟作者在交流的感觉··  

评分

为什么这本书会是评价最少的呢,类似的游戏开发入门的书翻了不少,只发现有这一本才是作者真正从入门的角度,一步一步带着读者探索游戏开发世界的奥秘的。比起国内的一些明显是东拼西凑起来的书,读这本书的时候,字里行间真的有一种跟作者在交流的感觉··  

评分

翻译很生硬, 还有点错误, 内容算游戏入门, 但前提你得了解Directx9.0, 不了解Directx9.0到后面你就不知道作者在讲什么, 作者前面讲的还是很细, 每个API什么的都讲解下, 介绍下, 到后面就省略了很多, 所以建议大家了解Directx在看吧, 里面的几个游戏例子还是不错, ...

评分

翻译很生硬, 还有点错误, 内容算游戏入门, 但前提你得了解Directx9.0, 不了解Directx9.0到后面你就不知道作者在讲什么, 作者前面讲的还是很细, 每个API什么的都讲解下, 介绍下, 到后面就省略了很多, 所以建议大家了解Directx在看吧, 里面的几个游戏例子还是不错, ...

用户评价

评分

老实说,我对编程的理解一直停留在“能用”的阶段,更多的是复制粘贴和对现有框架的调用。直到我接触到这本书,才发现自己对“效率”和“优化”的理解有多么肤浅。这本书的后半部分,简直是一场针对性能瓶颈的“手术”。它没有回避那些令人头疼的底层细节,比如内存对齐、缓存命中率这些概念,而是用一种近乎“福尔摩斯探案”的严谨态度去剖析问题。我记得有一个章节专门讲了游戏物理引擎中的碰撞检测算法,它详细对比了包围盒(AABB)和分离轴定理(SAT)在不同场景下的表现差异,并给出了实战中如何选择的决策树。这种深度分析让我意识到,一个流畅的120帧体验背后,是无数次精妙的数学计算和数据结构优化。更值得称赞的是,书中对调试技巧的介绍,它不仅仅是教你如何设置断点,更是教你如何“观察”程序的运行状态,如何通过日志系统追踪一个跨越多个模块的逻辑错误。我曾为一个bug困扰了两天,最后按照书中提供的“二分法排查策略”,不到半小时就锁定了问题源头。这本书的价值,在于它教会了我如何从“能跑起来”跨越到“跑得漂亮、跑得稳定”的专业境界。

评分

这本书的结构安排非常具有前瞻性,它没有将不同技术栈孤立地讲解,而是努力构建一个完整的游戏开发生态视图。我最欣赏的是它对“工具链”的重视。很多入门书籍只关注核心代码,但这本书花了大篇幅去介绍版本控制系统(Git)在多人协作中的应用,以及如何搭建一个持续集成/持续部署(CI/CD)的环境,即使是对于独立开发者来说,这些现代化的工作流程也能极大地提高效率和代码质量。此外,书中对美术资源导入和序列化的处理,也体现了作者的实战经验。比如,它详细讲解了如何设计一个轻量级的JSON格式来存储关卡配置数据,并强调了数据驱动的重要性,这意味着我们可以修改配置表而不必重新编译整个程序。这种对“非代码”部分的重视,让这本书的实用性大大增强。它不再仅仅是一本编程手册,更像是一份指导新人快速融入专业开发团队的“流程指南”。读完它,我感觉自己对游戏项目从概念到上线的整个生命周期都有了清晰的认知,这种全局观在其他同类书籍中是很难找到的。

评分

这本关于游戏编程的书籍,从我一个纯粹的游戏爱好者角度来看,简直是打开了一个全新的世界。我一直沉迷于各种独立游戏和大型3A作品,但从未想过自己能亲手构建一个虚拟世界。初翻阅时,那些密密麻麻的代码和复杂的引擎概念让我有些望而却步,但作者的叙事方式非常巧妙。他没有一开始就抛出硬核的数学公式或晦涩的底层原理,而是从一个最简单的“点动起来”开始,用极其形象的比喻来解释面向对象编程的核心思想。比如,他把游戏中的角色比作一个“有自己生命和习惯的机器人”,而我们就是给它编写“行为手册”的工程师。这种贴近生活的类比,让我这个编程小白也能迅速抓住重点。尤其让我印象深刻的是,书中对资源管理的探讨,它没有停留在理论层面,而是通过一个模拟“内存泄漏”的小案例,直观展示了不规范编程带来的后果,那种“卡顿”的体验仿佛真真切切发生在我的电脑上。而且,作者在讲解图形渲染管线时,没有用枯燥的术语堆砌,而是构建了一个“流水线工人”的故事,每个工人负责特定的工序,这让复杂的流程变得清晰易懂。对于一个渴望将脑海中的创意转化为屏幕上真实交互的读者来说,这本书提供的不仅仅是代码技巧,更是一种构建思维框架的引导。我感觉自己不再只是一个游戏的消费者,而是在慢慢成为一个微型的创造者,那种成就感是无与伦比的。

评分

令人耳目一新的是,这本书在处理“创意与实现”的平衡方面,展现了极高的哲学思辨深度。它没有盲目推崇某一种技术栈,而是始终把“游戏设计目标”放在首位。例如,在讨论网络同步技术时,作者没有直接给出同步协议的模板,而是先探讨了“延迟补偿”对于不同类型游戏(如即时战略与回合制)的意义,并基于此引出了权威性/确认性客户端的架构选择。这迫使读者在写每一行代码之前,都要先问自己:“我希望玩家获得什么样的体验?”这种自上而下的设计导向,彻底颠覆了我过去那种“先搭积木再看它像什么”的开发习惯。书中还穿插了一些对游戏叙事与机制融合的讨论,虽然篇幅不长,但给我的启发却非常大,它让我开始思考,代码逻辑本身是否也可以成为叙事的一部分。这本书更像是一本“思想炼金术”,它将冰冷的逻辑与火热的创意熔铸在一起,让读者明白,真正的游戏编程艺术,在于如何用技术手段去完美服务于设计的初衷。

评分

这本书的语言风格非常具有“老兵带新兵”的亲切感,没有那种高高在上的技术布道感,更多的是一种经验的传承。作者似乎非常了解初学者在学习过程中的痛点,每当即将进入一个复杂概念时,他总会预先设置一个“避险区”,用更直白的方式铺垫,仿佛在说:“我知道这块难啃,我们先绕个弯子。”让我印象最深的是它对错误处理和异常管理的讲解。很多书籍只是教你如何用`try-catch`,但这本书深入分析了游戏状态机在异常发生时的回滚策略,以及如何设计一个健壮的日志系统来记录崩溃现场,确保即使游戏崩溃,也能为后续的修复提供有效线索。此外,书中针对不同平台(PC与移动端)的输入处理差异做了专门的章节,对比了触摸屏与键鼠操作逻辑的映射,这些细节的考量,充分体现了作者是将自己犯过的所有错误都“打包”好,递送给了读者。读完这本书,我最大的感受是,我不仅学会了如何“做”游戏,更学会了如何“维护”和“迭代”一个真实的、会呼吸的软件项目。

评分

比《Windows 游戏编程大师技巧》更实用的 Windows 游戏编程入门。

评分

一个星期读完,游戏编程入门的神器,早看到这本书,我也就不会走那么多弯路了。

评分

比《Windows 游戏编程大师技巧》更实用的 Windows 游戏编程入门。

评分

一个星期读完,游戏编程入门的神器,早看到这本书,我也就不会走那么多弯路了。

评分

比《Windows 游戏编程大师技巧》更实用的 Windows 游戏编程入门。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有