游戏编程入门(第4版)

游戏编程入门(第4版) pdf epub mobi txt 电子书 下载 2025

[美] Jonathan S. Harbour 著,李军 译
图书标签:
  • 游戏编程
  • 游戏开发
  • C++
  • DirectX
  • 入门
  • 教程
  • 第4版
  • 图形学
  • 编程基础
  • 计算机游戏
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115390417
版次:4
商品编码:11741435
品牌:异步图书
包装:平装
开本:16开
出版时间:2015-07-01
用纸:胶版纸
页数:350
正文语种:中文

具体描述

内容简介

本书是游戏编程经典入门读物的最新版。
全书共分14章,包含两个附录。本书首先介绍Windows和DirectX编程,然后快速介绍游戏编程的工具箱,包括使用C++和DirectX开发游戏所需的所有基础知识。读者将学习到把思想转化为现实所需的技术,比如2D、3D图形的绘制、背景卷动、处理游戏输入、音效、碰撞检测等。在每章结束时,给出了测验题和项目以便帮助读者实践新学到的技能。本书配套网站提供了所有示例代码和项目的下载。
本书自第1版出版至今已经长达十年,深受广大读者欢迎。本书有志于进入游戏编程世界且有一定C++编程基础的初学者阅读,也适合作为社会培训机构的培训教材。

作者简介

Jonathan S. Harbour编写了19本游戏开发方面的书,有针对PC、Mac、Linux、Android、Windows Phone和游戏控制台的。他在University of Advancing Technology(www.uat.edu)教了5年课程,在那里,他和学生一起使用PlayStation 2 TOOL开发工具包、Nintendo Dolphin SDK、Xbox 360 XNA SDK、人工智能、数据库、DirectX等工具和技术。他还教授了C++、Java、VB、C#、LUA、Python和SQL课程。他的个人站点是jharbour.com。

内页插图

目录

第1部分 Windows和DirectX游戏编程引言

第1章 Windows初步 3
1.1 Windows编程概述 4
1.1.1 “获取”Windows 5
1.1.2 理解Windows消息机制 6
1.1.3 多任务 7
1.1.4 多线程 8
1.1.5 事件处理 9
1.2 DirectX快速概览 10
Direct3D是什么 11
1.3 Windows程序基础 12
1.3.1 创建第一个Win32
项目 12
1.3.2 理解WinMain 20
1.3.3 完整的WinMain 21
1.4 你所学到的 23
1.5 复习测验 24
1.6 自己动手 25
第2章 侦听Windows消息 26
2.1 编写一个Windows程序 27
2.1.1 理解InitInstance 34
2.1.2 理解MyRegisterClass 36
2.1.3 晒一晒WinProc的
秘密 39
2.2 什么是游戏循环 42
2.2.1 老的WinMain 42
2.2.2 WinMain和循环 45
2.3 GameLoop项目 47
GameLoop程序的源代码 47
2.4 你所学到的 54
2.5 复习测验 54
2.6 自己动手 55
第3章 初始化Direct3D 56
3.1 Direct3D初步 56
3.1.1 Direct3D接口 57
3.1.2 创建Direct3D对象 57
3.1.3 第一个Direct3D项目 60
3.1.4 全屏模式的Direct3D 68
3.2 你所学到的 73
3.3 复习测验 73
3.4 自己动手 74

第2部分 游戏编程工具箱

第4章 绘制位图 77
4.1 表面和位图 77
4.1.1 主表面 79
4.1.2 从的离屏(off-screen)
表面 80
4.1.3 Create Surface示例 82
4.1.4 装载位图 86
4.1.5 Load_Bitmap程序 88
4.1.6 代码回收利用 92
4.2 你所学到的 92
4.3 复习测验 93
4.4自己动手 94
第5章 从键盘、鼠标和控制器获得
输入 95
5.1 键盘输入 96
5.1.1 DirectInput对象和
设备 96
5.1.2 初始化键盘 97
5.1.3 读取键盘按键 99
5.2 鼠标输入 99
5.2.1 初始化鼠标 100
5.2.2 读取鼠标 101
5.3 Xbox 360控制器输入 102
5.3.1 初始化XInput 103
5.3.2 读取控制器状态 104
5.3.3 控制器振动 105
5.3.4 测试XInput 106
5.4 精灵编程简介 112
5.4.1 一个有用的精灵结构 114
5.4.2 加载精灵图像 115
5.4.3 绘制精灵图像 115
5.5 Bomb Catcher游戏 116
5.5.1 MyWindows.cpp 118
5.5.2 MyDirectX.h 120
5.5.3 MyDirectX.cpp 122
5.5.4 MyGame.cpp 127
5.6 你所学到的 131
5.7 复习测验 132
5.8 自己动手 133
第6章 绘制精灵并显示精灵动画 134
6.1 什么是精灵 134
6.2 加载精灵图像 135
6.3 透明的精灵 137
6.3.1 初始化精灵渲染器 138
6.3.2 绘制透明的精灵 140
6.4 绘制动画的精灵 147
6.4.1 使用精灵表 148
6.4.2 精灵动画演示 150
6.5 你所学到的 154
6.6 复习测验 154
6.7 自己动手 155
第7章 精灵变换 156
7.1 精灵旋转和缩放 156
7.1.1 2D变换 158
7.1.2 绘制变换了的精灵 163
7.1.3 Rotate_Scale_Demo
程序 164
7.1.4 带有变换的动画 166
7.2 你所学到的 169
7.3 复习测验 170
7.4 自己动手 171
第8章 检测精灵碰撞 172
8.1 边界框碰撞检测 172
8.1.1 处理矩形 173
8.1.2 编写碰撞函数 174
8.1.3 新的精灵结构 175
8.1.4 为精灵的缩放进行
调整 176
8.1.5 边界框演示程序 176
8.2 基于距离的碰撞检测 180
8.2.1 计算距离 181
8.2.2 编写距离计算的代码 181
8.2.3 测试的碰撞 183
8.3 你所学到的 183
8.4 复习测验 184
8.5 自己动手 185
第9章 打印文本 186
9.1 创建字体 186
9.1.1 字体描述符 187
9.1.2 创建字体对象 188
9.1.3 可重用的MakeFont
函数 188
9.2 使用ID3DXFont打印文本 189
9.2.1 使用DrawText打印 189
9.2.2 文本折行 190
9.3 测试字体输出 191
9.4 你所学到的 194
9.5 复习测验 194
9.6 自己动手 195
第10章 卷动背景 196
10.1 卷动 196
10.1.1 背景和布景 198
10.1.2 从图片单元创建
背景 198
10.1.3 基于图片单元的
卷动 199
10.2 动态渲染的图片单元 205
10.2.1 图片单元地图 205
10.2.2 使用Mappy创建图片
单元地图 207
10.2.3 Tile Dynamic Scroll
项目 210
10.3 基于位图的卷动 217
10.3.1 基于位图的卷动
理论 217
10.3.2 位图卷动演示 218
10.4 你所学到的 221
10.5 复习测验 222
10.6 自己动手 223
第11章 播放音频 224
11.1 使用DirectSound 224
11.1.1 初始化DirectSound 225
11.1.2 创建声音缓冲区 226
11.1.3 装载波形文件 226
11.1.4 播放声音 227
11.2 测试DirectSound 228
11.2.1 创建项目 229
11.2.2 修改“MyDirectX”
文件 230
11.2.3 修改MyGame.cpp 232
11.3 你所学到的 238
11.4 复习测验 239
11.5 自己动手 240
第12章 学习3D渲染基础 241
12.1 3D编程简介 242
12.1.1 3D编程的关键组成
部分 242
12.1.2 3D场景 242
12.1.3 转移到第三个轴 247
12.1.4 掌握3D管线 248
12.1.5 顶点缓冲区 250
12.1.6 渲染顶点缓冲区 252
12.1.7 创建四边形 253
12.2 带纹理的立方体示例 256
12.3 你所学到的 264
12.4 复习测验 265
12.5 自己动手 266
第13章 渲染3D模型文件 267
13.1 创建以及渲染后援网格 267
13.1.1 创建后援网格 268
13.1.2 渲染后援网格 270
13.1.3 编写着色器代码 270
13.1.4 Stock Mesh程序 272
13.2 装载并渲染模型文件 274
13.2.1 装载.X文件 275
13.2.2 渲染纹理模型 279
13.2.3 从内存中删除一个
模型 280
13.2.4 Render Mesh程序 281
13.3 你所学到的 289
13.4 复习测验 289
13.5 自己动手 290
第14章 Anti-Virus(反病毒)
游戏 291
14.1 Anti-Virus游戏 291
14.1.1 游戏玩法 292
14.1.2 游戏源代码 302
14.2 你所学到的 329
14.3 复习测验 329
14.4 自己动手 330

第3部分 附 录

附录A 配置Visual Studio 2013 333
A.1 安装 333
A.2 创建一个新的项目 334
A.3 修改字符集设置 337
A.4 修改VC++路径 338
附录B 各章测验答案 339

前言/序言


《代码的魔术师:揭秘游戏开发的核心世界》 这不仅仅是一本书,它是一扇通往互动娱乐奇妙世界的沉浸式门户,是献给所有渴望将脑海中的幻想变为屏幕上跃动生命的梦想家们的一份指南。我们生活的时代,游戏已不再是简单的消遣,它是一种艺术形式,一种讲述故事的全新语言,一种连接世界的强大力量。从像素点构成的早期冒险,到如今拥有电影级画质和复杂叙事的开放世界,游戏的发展史本身就是一部科技与创意的璀璨篇章。而在这背后,是无数代码的舞动,是算法的精妙编排,是逻辑的严丝合缝,共同构建起我们沉醉其中、乐此不疲的虚拟现实。 本书的目标读者,是那些对游戏开发怀有强烈好奇心,但可能缺乏明确方向的初学者。我们理解,当面对“游戏开发”这个庞大的概念时,初学者常常会感到无从下手,被各种名词、技术和工具淹没。是先学习引擎?还是先掌握编程语言?图形渲染、物理模拟、人工智能、用户界面,这些又是怎么一回事?无数的疑问可能如同迷雾,笼罩在探索的道路上。 《代码的魔术师》正是为了驱散这些迷雾而生。它并非一本深奥的技术论文,也不是一部枯燥的编程教材。相反,它以一种更为亲和、更具启发性的方式,引导读者逐步走近游戏开发的核心。我们将从最基础的概念讲起,用通俗易懂的语言解释那些看似复杂的技术原理。想象一下,当你看到游戏中角色流畅的跳跃,爆炸时逼真的碎片飞溅,或是敌人智能的追击,你是不是也曾好奇,这一切是如何实现的?本书将层层剥开这些“魔法”的幕后,让你明白,这一切并非凭空而来,而是由一个个精巧的逻辑单元和严谨的代码指令组合而成。 我们将首先深入探索游戏开发的基本构成要素。游戏引擎,作为现代游戏开发的核心平台,将被详细介绍。你将了解到,引擎是如何将图形、声音、物理、脚本等多种功能集成在一起,提供一个高效的开发环境。我们不会仅仅停留在理论层面,而是会通过实际的例子,让你理解不同引擎的优势与劣势,以及在选择引擎时需要考虑的关键因素。 随后,我们将触及游戏开发中至关重要的编程语言。虽然市面上有许多选择,但我们会聚焦于那些在游戏开发领域拥有广泛应用和强大社区支持的语言。你将学习到编程的基本语法、数据结构、算法思想,并了解这些知识如何被应用于游戏逻辑的实现。我们将强调“解决问题”的编程思维,鼓励读者在实践中学习,通过编写简单的程序来巩固和加深对概念的理解。 本书的一个重要章节将专注于游戏的核心机制:逻辑与互动。我们将探讨如何设计和实现玩家与游戏世界之间的交互。从最基础的玩家输入检测,到角色移动、碰撞检测,再到更复杂的AI行为设计,我们将一步步剖析这些逻辑是如何被构建起来的。你将学习到状态机、有限自动机等重要的AI设计模式,理解如何让游戏中的NPC(非玩家角色)拥有更加生动、智能的表现。 视觉的盛宴:图形与渲染的艺术 游戏之所以迷人,很大程度上在于其视觉呈现。本书将为你揭示屏幕上那一帧帧画面的诞生过程。我们将讲解三维图形学的基础知识,包括多边形、纹理、光照、阴影等概念。你将了解到,从三维模型到最终在屏幕上显示的图像,需要经过一系列复杂的渲染管线。虽然我们不会深入到每个着色器的每一个像素,但我们会让你理解,为什么游戏画面会如此逼真,以及开发者在追求视觉效果时所面临的挑战和采用的技术。 听觉的冲击:音效与音乐的魔力 除了视觉,声音同样是营造游戏氛围、提升玩家沉浸感的关键。我们将讨论游戏音效的设计原则,以及如何将背景音乐、音效、语音等元素巧妙地融合在一起,形成一个完整的听觉体验。你将了解到,简单的音效可以极大地增强打击感、反馈感,而一段恰到好处的背景音乐则能将玩家的情绪推向高潮。 游戏的灵魂:物理引擎的运作 在许多游戏中,物理引擎扮演着至关重要的角色,它让游戏世界中的物体行为符合我们日常生活中所熟悉的物理规律。本书将为你介绍物理引擎的基本原理,如刚体动力学、碰撞检测、关节约束等。你将理解,为什么游戏中的物体会受到重力影响,为什么碰撞会产生真实的弹开效果,以及开发者如何利用物理引擎来创造更具动态和趣味性的游戏体验。 故事的载体:叙事与关卡设计 一款优秀的游戏,往往拥有引人入胜的故事和精心设计的关卡。本书将探讨游戏叙事的艺术,以及如何将故事巧妙地融入到游戏机制和关卡设计中。你将学习到,如何通过环境叙事、角色互动、任务设计等多种方式,让玩家在游玩过程中自然而然地被故事所吸引。关卡设计方面,我们将讨论如何通过空间布局、障碍设置、敌人 배치 等元素,来引导玩家、挑战玩家,并最终提供 satisfying 的游戏体验。 游戏的生命线:优化与性能 对于任何一款游戏来说,流畅的运行是基础。本书将为你介绍游戏性能优化的基本概念和常用技巧。你将了解到,为什么有些游戏会卡顿,以及开发者是如何通过代码优化、资源管理、图形设置等方式来提升游戏的运行效率,确保玩家能够在各种设备上获得良好的游戏体验。 从零开始的实践路径 《代码的魔术师》并非只是理论的堆砌,我们深知实践的重要性。在每个章节中,我们都将提供简化的代码示例和练习,帮助你将所学知识付诸实践。本书的设计理念是循序渐进,让每一个读者都能在轻松愉快的氛围中,逐步建立起对游戏开发的认知和信心。我们会鼓励你动手去尝试,去修改代码,去观察结果,去理解“为什么”。 我们相信,每一个对游戏充满热爱的人,都拥有成为一名游戏开发者的潜质。这本书将为你点亮前行的道路,为你提供坚实的起点。它将帮助你理解游戏开发背后的逻辑,掌握必要的工具和技术,更重要的是,它将激发你内心深处创造的冲动。 想象一下,当你的第一个游戏在屏幕上运转起来,当玩家因为你设计的关卡而感到惊喜,当他们因为你创造的角色而潸然泪下,那一刻的成就感将是无与伦比的。 《代码的魔术师》就是为你开启这段奇妙旅程的第一把钥匙。它将带你走进一个充满无限可能的世界,让你亲手去创造那些曾经让你心驰神往的虚拟世界。准备好迎接挑战,释放你的创造力,成为那个用代码编织梦想的魔术师吧!

用户评价

评分

一直以来,我都对游戏开发充满好奇,但面对浩瀚的技术海洋,总有一种无从下手的感觉。许多游戏开发的书籍要么过于理论化,让初学者望而却步;要么就是过于侧重于某个游戏引擎的API,忽视了底层的核心原理。这本书的出现,着实解决了我的痛点。它并没有直接教你如何使用某个引擎来制作游戏,而是更注重游戏开发的基础概念和核心算法。从最基本的图形渲染管线,到数据结构在游戏中的优化应用,再到更高级的AI算法和网络通信,这本书都进行了深入浅出的讲解。我特别欣赏书中对于游戏性能优化的探讨,它让我意识到,在游戏开发中,不仅仅要考虑功能的实现,更要关注效率和流畅度。作者通过对常见性能瓶颈的分析,以及相应的优化策略,为我打开了新的思路。虽然书中涉及的一些数学和编程概念对我来说还有些挑战,但作者的讲解方式非常清晰,并通过大量的代码示例来加深理解。这本书就像一盏指路明灯,让我能够看清游戏开发的整体脉络,并为我指明了学习的方向。

评分

最近在学习游戏开发,尝试了一些免费的在线教程,但总感觉碎片化太严重,知识点跳跃性太大,让人抓不住重点。在论坛上看到有人强烈推荐这本书,说它循序渐进,非常适合初学者。我抱着试试看的心态买了下来。拿到书后,我被它扎实的理论基础和清晰的逻辑结构深深吸引。作者并没有急于教你如何写出炫酷的游戏效果,而是从最基础的计算机科学概念讲起,比如二进制、内存管理,然后逐步过渡到图形学、物理引擎等核心领域。每一章都配有详细的讲解和相对完整的代码示例,这些示例虽然不复杂,但能够清晰地展示所讲概念的实际应用。我尤其欣赏书中对设计模式的介绍,它让我意识到,良好的代码结构和设计思想对于开发大型游戏至关重要,这比我之前只关注“能跑就行”有了质的飞跃。虽然书中涉及的数学知识对我这个文科生来说有点挑战,但作者的处理方式很有技巧,尽量用最直观的方式来解释,加上书中提供的参考资料,我也能勉强跟上。总的来说,这本书就像一位耐心的导师,一步一步地引导我进入游戏开发的殿堂,让我觉得学习的过程不再是盲目摸索,而是有方向、有体系的。

评分

作为一个多年不碰代码的老玩家,最近因为看到一些独立游戏的成功案例,心痒痒地想重拾开发游戏的梦想。市面上很多游戏开发的书籍,要么是针对Unity、Unreal等引擎的快速入门,要么就是讲一些前沿的3D图形学技术,对我这种只想从头开始了解游戏底层机制的人来说,都有些不太合适。这本书的出现,简直就是为我量身定做的。它没有过分强调某个具体的游戏引擎,而是把重点放在了游戏开发的核心原理和算法上。从最基础的坐标系、向量运算,到碰撞检测、路径寻找,再到基本的AI行为模拟,这本书都进行了深入浅出的讲解。我最喜欢的是书中关于“游戏循环”的解释,它让我一下子明白了游戏是如何工作的,而不是之前那种“代码写上去就动了”的模糊概念。虽然书中涉及的C++语言我还需要一点时间来复习,但作者的讲解方式很贴合游戏开发的实际场景,让我能更快地理解代码的意义。这本书就像给我打开了一扇通往游戏开发“幕后”的大门,让我看到了那些让游戏“活起来”的精妙设计和计算逻辑。

评分

终于下定决心要投入游戏开发的怀抱,找了很久关于入门书籍,市面上确实五花八门,看得人眼花缭乱。朋友推荐了好几本,但总觉得要么太理论化,要么例子太陈旧。偶然间看到这本书的介绍,当时就被“入门”和“第4版”这两个词吸引了。入门意味着我这种小白也能啃得动,第4版则暗示了内容的时效性和更新迭代,毕竟技术更新换代太快了,一本太老的书很多内容可能就过时了。拿到手后,翻了几页,感觉排版很舒服,没有那种堆砌代码的压迫感。文字解释得很到位,不像有些书直接抛出代码,然后让你自己去琢磨。这本书似乎更注重原理讲解,比如数据结构、算法在游戏中的应用,甚至还谈到了游戏设计的一些基础理念,这点我特别喜欢。我一直觉得做游戏不光是写代码,更要有想法,有对游戏的理解,这本书似乎在这方面也给了一些启发,虽然我还没完全看懂,但感觉打开了一个新的视角。它让我觉得,游戏开发不只是一个纯粹的技术活,更是一个创意和技术的结合体。我现在还在慢慢啃,希望能通过这本书打下坚实的基础,以后能做出属于自己的独立游戏。

评分

我对游戏开发的兴趣由来已久,一直想找一本能够全面理解游戏开发流程和底层原理的书籍。市面上的一些游戏开发教程,往往会侧重于某个特定的游戏引擎,例如Unity或Unreal Engine,这些教程虽然能快速上手制作简单的游戏,但往往忽略了游戏开发的核心技术和原理。而这本书,则从更宏观的视角切入,它并没有过分强调某一款游戏引擎,而是将重点放在了游戏开发过程中不可或缺的基础知识和关键技术。它详细地讲解了游戏中的数学原理,例如向量、矩阵、三角函数等在三维图形学中的应用,还深入探讨了物理引擎的工作原理,包括碰撞检测、刚体动力学等。此外,书中还涉及了游戏AI的设计,例如寻路算法、状态机等,这些都是构成一个完整游戏不可或缺的元素。尽管书中涉及的内容比较深入,但我惊喜地发现作者的讲解方式非常易于理解,他能够将复杂的概念化繁为简,并通过大量的图示和实例来帮助读者建立直观的认识。这本书为我提供了一个系统性的游戏开发知识框架,让我能够更清晰地认识到游戏开发中各个环节之间的联系,为我未来的深入学习奠定了坚实的基础。

评分

《图灵计算机科学丛书:具体数学计算机科学基础》第二作者、图灵奖得主计算机科学泰斗Donald E. Knuth(高德纳)在接受图灵社区的访谈时如是说:

评分

帮家里人买的!买看到!应该没问题

评分

很实用,讲的很详细

评分

包装完好,物流快。

评分

纸张摸起来很舒服。对新手比较友好,详细。

评分

还没开始看,感觉不错

评分

课外书。

评分

感觉我可以因为这本书向爸妈要一个好的游戏本了????,书本内容挺好,很喜欢

评分

打酱油的书,不推荐

相关图书

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

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有