Making Games with Python & Pygame 中文翻译
Making Games with Python & Pygame 用Pygame做游戏
第1章-安装python和pygame
原文作者:Al Sweigart
翻译:bigbigli/李超
禁止转载
在开始做游戏之前你应该知道什么?
在阅读这本书之前,如果你对Python编程有一点了解(或者如何使用Python之外的另一种语言编程),这可能会有所帮助;然而,即使你还没有读过这本书,你仍然可以读这本书。
编程并不像人们想象的那么难。
如果你遇到了一些麻烦,你可以在http://inventwithpython.com上免费阅读这本书——《Invent Your Own Computer Games with
Python》,或者在http://inventwithpython.com/wiki上查找一个相关的问题。
在阅读这本书之前,如果没有了解过Pygame库也没关系,下一章是关于Pygame的所有主要特性和功能的简短教程。
如果您还没有阅读过关于Python及pygame任何内容,也没有安装过Python及Pygame,那么稍后我将详细介绍如何安装。如果您已经安装了这两个,那么您可以跳过本章。
下载并安装Python
在我们开始编程之前,您需要在计算机上安装Python解释器。解释器是一个程序,它理解您将用Python编写的说明。没有解释器,您的计算机将无法运行Python程序。 从现在开始,我们将把Python解释器称为Python。
Python解释器可以从Python编程语言的官方网站下载,http://www.python.org。 您可能需要其他人的帮助来下载和安装Python软件。安装什么样的Python解释器取决于您的计算机的操作系统是Windows、MacOSX还是Linux操作系统,如Ubuntu。你还可以在网上找到在电脑上安装Python软件的视频http://invpy.com/installing。
Windows系统安装python
当您访问http://python.org时,您应该看到左边的链接列表(例如-about、-News、-Documentation、-Download等等)。点击Download链接进入下载页面,然后查找名为Python3.2Windows安装程序的文件,然后单击其链接下载Windows系统的Python。
双击刚刚下载的python-3.2.msi文件,启动Python安装程序。(如果没有启动,请尝试右键单击文件并选择Install。) 一旦安装程序启动,只需继续单击Next按钮,并接受在开始时安装程序的选择(不需要进行任何更改)。安装完成后,单击Finish。
Mac OS X系统
Mac OS X10.5附带Python2.5.1由苹果预装。目前,Pygame只支持Python2,而不支持Python3(现在2020年已经支持)。然而,本书中的程序同时使用Python2和Python3。
Python网站(http://docs.python.org/dev/using/mac.html)还有一些关于在Mac上使用Python的其他信息。
启动Python
我们将使用IDLE软件键入我们的程序并运行它们。IDLE代表交互式开发环境。开发环境是使编写Python程序变得容易的软件,就像文字处理器软件使编写书籍变得容易一样。
如果您的操作系统是WindowsXP,您可以通过单击“开始”按钮来运行Python,然后选择Program - Python3.1 - IDLE(Python GUI)。对于Windows Vista或Windows7,只需单击左下角的Windows按钮,找到IDLE或者搜索IDLE并选择就可以了。
如果您的操作系统是Max OS X,则通过打开Finder窗口并单击Applications启动IDLE,然后单击Python3.2,然后单击IDLE图标就可以了。
安装Pygame
安装完Python后,并没有自带Pygame库。像Python一样,Pygame是免费的。您也需要下载和安装Pygame,这与下载和安装Python解释器一样容易。在浏览器中,转到http://pygame.org,然后单击网站左侧的Downloads下载链接。您需要下载操作系统的Pygame安装程序和您安装的Python版本,本书假设您下载的是Windows版本。
在Windows上,双击下载的文件安装Pygame。 若要检查Pygame是否安装正确,请在交互式shell中键入以下内容:
import pygame
如果点击Enter键后没有出现任何东西,那么您就知道Pygame已经成功安装了。如果出现错误导入错误:没有出现名为pygame的模块,则尝试再次安装Pygame(并确保输入的pygame正确)。
本章有五个小程序,演示如何使用Pygame提供的不同功能。在最后一章中,您将使用这些特性来完成用Python编写的带有Pygame的完整游戏。
关于如何安装Pygame的视频教程可在本书的网站http://invpy.com/videos查阅。
如何使用这本书
使用Python&Pygame制作游戏不同于其他编程书,因为它专注于几个游戏程序的完整源代码。这本书没有教你编程概念,而是让你自己去弄清楚如何用这些概念制作程序,这里向你展示了一些程序,然后解释了它们是如何组合在一起的。
一般来说,你应该按顺序阅读这些章节。在这些游戏中有许多概念被反复使用,它们只在它们出现的第一个游戏中被详细解释。但如果有一个你认为有趣的游戏,直接跳到那一章先阅览,如果你感觉自己能掌握,则可以随时阅读。
特色程序
每一章都是一个单一的游戏程序,并解释不同部分的代码是如何工作的。通过从本书中逐行输入代码是非常有帮助的,但是,您也可以从本书的网站下载源代码文件。 在Web浏览器中,转到URL http://invpy.com/source并按照说明下载源代码文件。但是自己输入代码确实可以帮助你更好地学习代码。
下载图形和声音文件
虽然你可以输入你从这本书中读到的代码,但你需要从http://invpy.com/downloads下载这本书中游戏使用的图形和声音文件,确保这些图像和声音文件位于与.py Python文件相同的文件夹中,否则Python程序将无法找到这些文件。
行数和空间
自己输入源代码时,不要输入每一行开头出现的行号。例如,如果你在书中看到这个:

您不需要在左侧输入1,2,3,4... ...
应该这样输入:
number = random.randint(1, 20)
spam = 42
print('Hello world!')
这些数字只用于本书可以参考代码中的特定行,它们不是实际程序的一部分。
除了行号之外,请确保输入的代码与显示的完全一样。请注意,有些行不是从页面最左边开始的,而是由四个或八个或更多空格缩进的。一定要在每一行的开头加上正确的空格数。(由于IDLE中的每个字符都是相同的宽度,所以您可以通过计算正在查看的行上方或下方的字符数来计算空格数。)
例如,在下面的代码中,您可以看到第二行被四个空格缩进,因为上面一行的四个字符(while)位于缩进空间之上。第三行由另四个空格缩进(四个字符,如果n在第三行缩进空间之上):
while spam < 10:
if number == 42:
print('Hello')
这本书的文字包装
有些代码行太长,不适合在本书的页面上的一行,代码的文本将绕到下一行。当您在文件编辑器中输入这些行时,在一行中输入代码,而不按Enter键。
您可以通过查看代码左侧的行号来判断新行何时开始。例如,下面的代码只有两行代码,尽管第一行绕到了下一行:

在线查看您的代码
这本书中的一些程序有点长。虽然通过输入这些程序的源代码来学习Python是非常有帮助的,但您可能会意外地输入导致程序崩溃的错误。错误在哪里可能不明显。
您可以将源代码的文本复制并粘贴到图书网站上的在线diff工具中。diff工具将显示书中的源代码和您键入的源代码之间的任何差异。这是在程序中查找任何错误的简单方法。
复制和粘贴文本是一种非常有用的计算机技能,特别是对于计算机编程。在http://invpy.com/copypaste这本书的网站上有一个关于复制和粘贴的视频教程。
Making Games with Python & Pygame 中文翻译的更多相关文章
- 推荐《用Python进行自然语言处理》中文翻译-NLTK配套书
NLTK配套书<用Python进行自然语言处理>(Natural Language Processing with Python)已经出版好几年了,但是国内一直没有翻译的中文版,虽然读英文 ...
- python wsgi PEP333 中文翻译
PEP 333 中文翻译 首先说明一下,本人不是专门翻译的,英文水平也不敢拿来献丑.只是这是两年前用python的时候为了自己学习方便而翻译的,记录着笔记自己看看而已.最近翻出来看看觉得还是放出来吧. ...
- Python 标准库 BaseHTTPServer 中文翻译
Python 标准库 BaseHTTPServer 中文翻译. 注意: BaseHTTPServer模块在Python3中已被合并到http.server,当转换你的资源为 Python3 时 2to ...
- Python 3.10 版本采纳了首个 PEP,中文翻译即将推出
现在距离 Python 3.9.0 的最终版本还有 3 个月,官方公布的时间线是: 3.9.0 beta 4: Monday, 2020-06-29 3.9.0 beta 5: Monday, 202 ...
- Python PEP 492 中文翻译——协程与async/await语法
原文标题:PEP 0492 -- Coroutines with async and await syntax 原文链接:https://www.python.org/dev/peps/pep-049 ...
- Spark官方文档 - 中文翻译
Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...
- Spark SQL 官方文档-中文翻译
Spark SQL 官方文档-中文翻译 Spark版本:Spark 1.5.2 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 Data ...
- 《Introduction to Tornado》中文翻译计划——第五章:异步Web服务
http://www.pythoner.com/294.html 本文为<Introduction to Tornado>中文翻译,将在https://github.com/alioth3 ...
- 《Django By Example》第九章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag 注:哈哈哈,第九章终于来啦 ...
随机推荐
- java小工具,使用Swing展示左树右表结构
代码直接上: 入口类 import java.io.File; import java.util.ArrayList; import java.util.List; import org.json.J ...
- CSS3之径向渐变
设置最终形状参数: ellipse circle 设置长半轴和短半轴 设置椭圆对称中心 设置色标 输出代码: radial-gradient(circle closest-side at ce ...
- python之 socketserver模块的使用
在我们正常的使用socket模块来写一个server的程序就会显得比较的复杂通常一般流程为 1.生成socket实例对象 2.绑定地址 3.开始监听 4.接收数据 一般demo为 # 服务器 impo ...
- Python_教程_使用Visual Studio Code开发Django项目
如何获得 Visual Studio Code 访问 http://code.visualstudio.com 下载并安装. 前提条件 安装Python 2.7 及 Python 3.5,Window ...
- 【C++】递归之二分查找
简单查找的时间复杂度为O(n) 二分查找的时间复杂度为O(logn) 用递归实现二分查找: 基线条件:数组只包含一个元素.如果如果要查找的值与这个元素相同,就找到了:否则说明不在数组中. 递归条件:把 ...
- MYSQL渗透测试
部分来源于:先知社区 MYSQL-getshell篇 通过日志getshell 查看日志的物理路径(绝对路径) show variables like '%general%'; 打开日志记录内容 se ...
- BUUCTF 不一样的flag writeup
感谢BUUCTF提供的学习平台 https://buuoj.cn 题目:不一样的flag 工具:x64dbg 这是一道内存的迷宫题,迷宫是402000处的字符串 根据经验,这应该(a行*b列)的字符, ...
- python笔记(1)---数据类型
数据类型 基本的五大数据类型 对python中的变量有如下的五种基本的数据类型: Number数字 list列表 Tuple元组 string字符串 Dictionary字典 1.Number [注意 ...
- 面试半年,凭借这份JVM面试题,我终于拿到了字节跳动的offer!
内存区域 虚拟机栈生命周期与线程相同,描述的是Java 方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧,用于存取局部变量表.操作数栈.动态链接.方法出口等信息本地方法栈与虚拟机栈作用相似,只 ...
- 新鲜出炉!JAVA线程池精华篇深度讲解,看完你还怕面试被问到吗?
前言 前两天趁着假期在整理粉丝私信的时候看到一个粉丝朋友的私信跟我说自己现在正在复习准备面试,自己在复习到线程池这一块的时候有点卡壳,总感觉自己差了点什么.想要我帮他指导一下.这不趁着假期我也有时间我 ...