2018 年 9 月,我教我的一些学生使用 Python 进行游戏编程和自动化。然后,我意识到是时候写一本书了,它不仅提供了关于使用 Python 进行游戏编程的丰富内容的信息,而且还展示了如何制作和部署模拟真实的、世界著名的游戏(如 Flappy Bird 和 Angry Birds)的游戏。我想为您提供游戏编程的所有基本要素和原语,让您成为现实世界中的 Python 游戏开发人员。这本书不是你通常和传统的 Python 理论书;我们的做法将尽可能切合实际。每章都将包含一个单一但功能强大的真实游戏示例,该示例不仅有趣,还将用编程范例启发您,这将是您成为熟练 Python 开发人员的第一步。
Stack Overflow 和 TIOBE 进行的一项调查显示,Python 是 2018/19 年度使用最广泛的编程语言之一,其普及率增长速度预计不会很快下降。如果您观察一下大型科技公司在处理业务时使用的是什么,您会发现它们高度依赖 Python,因为 Python 使用方便,并且可以快速原型化。不仅如此,您还可以看到 Python 可以用于开发从数据科学到高端 web 应用程序的各种应用程序,并且在您继续学习 Python 的基础知识时,您将准备好创建几乎任何您想要的东西。
学习 Python 有很多原因,其中一个重要原因是 Python 社区。许多世界上最伟大的开发人员通过添加新的库/模块和功能不断地为这个 Python 社区做出贡献。如果您想快速创建新的内容,这些库将非常有用。因此,Python 专注于产品,而不是陷入低级编程的例程和复杂性中,这使它成为初学者最喜爱的编程语言。
在本书中,我们将首先介绍一些重要的编程概念,如变量、数字、布尔逻辑、条件和循环。在建立核心编程概念的坚实基础之后,我们将跳进高级部分,如数据结构和功能。学习的速度将随着章节的难度而加快。在完成第 7 章、列表推导式和属性之后,我们将全面装备所有要应用的基础知识,同时创造先进的东西,如 flappy bird 模拟器、愤怒的小鸟模拟器和 AI 玩家。在每一章中,都会有一个游戏测试和可能的修改主题,迫使您思考应该如何处理错误以及应该如何改进程序。
为了更好地掌握本书中的每一个主题,我鼓励您跟随源代码和示例。要正确编写代码,您需要在计算机上安装 Python。我使用了 Python 的最新版本(截至 2019 年 9 月),即 3.7 版,但您可以使用比 3.5+更新的任何版本。Python 的完整安装过程将在第一章中介绍,它基于您正在使用的操作系统(Linux、macOS 或 Windows)。您还需要建立并运行 internet 连接才能下载 GitHub 代码和 Python 第三方库。我们将在本书后面安装不同的 Python 库,包括 PyGame、Pymunk 和 PyOpenGL。对于每一个,相关章节将介绍安装过程。在使用这些模块时,我们的程序会变得更长,因此我们强烈建议您使用好的 Python 文本编辑器。我将使用 PyCharm IDE 使用 Python 创建复杂的游戏,其安装也将在第一章中介绍。除了这些软件要求外,本书没有具体要求。
这本书是为任何想学习 Python 的人准备的。你可以是初学者,也可以是以前尝试过学习的人,但枯燥的课程或书籍会让你偏离正轨,或者是想重温他们的技能的人。这本书将帮助你获得核心知识,并以最有趣的方式提高你的技能:通过构建游戏。它主要关注使用 Python 模块 PyGame、PyOpenGL 和 Pymunk 进行 GUI 编程。学习者不需要任何编程技能,因为我们将在本书中介绍您需要了解的关于 Python 的所有知识。我们将通过构建三个迷你游戏来学习turtle
模块,您将学习如何创建自己的 2D 游戏,即使您是一个完全的初学者。如果您曾经想使用 Python 的 PyGame 模块探索游戏开发,那么本书就是为您准备的。
为了充分利用本书中提供的信息,我们鼓励您按照示例进行操作。不需要 Python 的先验知识,但数学概念(如算术和逻辑运算)的经验对于全面理解代码至关重要。基于 Python 的应用程序不限于任何特定的操作系统,因此所需的只是一个像样的代码编辑器和一个浏览器。在本书中,我们使用了 PyCharm Community 2019.2 编辑器,这是一个开源编辑器,可以免费下载。
您可以从您的账户www.packt.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问www.packtpub.com/support并注册,将文件通过电子邮件直接发送给您。
您可以通过以下步骤下载代码文件:
- 登录或注册www.packt.com。
- 选择“支持”选项卡。
- 点击代码下载
- 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。
下载文件后,请确保使用以下最新版本解压或解压缩文件夹:
- WinRAR/7-Zip for Windows
- 适用于 Mac 的 Zipeg/iZip/UnRarX
- 适用于 Linux 的 7-Zip/PeaZip
该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Learning-Python-by-building-games 。如果代码有更新,它将在现有 GitHub 存储库中更新。
我们的丰富书籍和视频目录中还有其他代码包,请访问**https://github.com/PacktPublishing/** 。看看他们!
访问以下链接以查看正在运行的代码的视频:
本书中使用了许多文本约定。
CodeInText
:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“屏幕截图显示了已编辑的python_ex_1.py
文件。”
代码块设置如下:
n = int(input("Enter any number"))
for i in range(1,100):
if i == n:
print(i)
break
当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:
def fun(b):
print("message")
a = 9 + b
move_player(a)
fun(3)
任何命令行输入或输出的编写方式如下:
>>> cd Desktop
粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个示例:“在安装程序中,确保选中“将 Python 添加到路径”框。”
Warnings or important notes appear like this. Tips and tricks appear like this.
我们欢迎读者的反馈。
一般反馈:如果您对本书的任何方面有疑问,请在邮件主题中注明书名,并发送电子邮件至[email protected]
。
勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/support/errata,选择您的书籍,单击 errata 提交表单链接,然后输入详细信息。
盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过[email protected]
与我们联系,并提供该材料的链接。
如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com。
请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。
有关 Packt 的更多信息,请访问Packt.com。