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 注:哈哈哈,第九章终于来啦 ...
随机推荐
- QQ群web前端分析二——第一印象
对QQ群WEB进行前端分析 入口是 http://qun.qzone.qq.com/ 以下为第一印象,主要是从我的理解上找问题. ----------------------------------- ...
- GMP-C/C++(大数库)使用方法
The GNU Multiple Precision Arithmetic Library(GNU 高精度算数库)是一个用于任意精度算术的免费库,可处理带符号整数,有理数和浮点数.除了运行GMP机器中 ...
- 聊一聊sockmap 以及ebpf
之前聊过tcpdump 抓包原理,tcpdump使用packet 抓包,使用packet_map 完成零拷贝.但是这个零拷贝也有点假,何为假呢?从网卡到内存走的dma,哪能不能直接从dma拷贝到用户空 ...
- kafka生产者数据可靠性保证
为保证 producer 发送的数据,能可靠的发送到指定的 topic,topic 的每个 partition 收到 producer 发送的数据后,都需要向 producer 发送 ack(ackn ...
- 关闭防火墙和设置主机名和ip及克隆机网卡处理方法
关闭防火墙: service NetworkManager stop --图形化用ifconfig之前先关掉网络服务. chkconfig NetworkManager off (将开机自启动关掉,使 ...
- Linux配置邮件发送信息
背景 一般情况下,我们的IT系统都会有相关的告警的处理,有的是邮件,有的是短信,这些都能很方便的获得一些有用的信息 在某些时候我们没有这样的系统,而自己又需要定期的获取一些信息的时候,配置一个邮件发送 ...
- Redis实现分布式缓存
Redis 分布式缓存实现(一) 1. 什么是缓存(Cache) 定义:就是计算机内存中的一段数据: 2. 内存中数据特点 a. 读写快 b. 断电立即丢失 3. 缓存解决了什么问题? a. 提 ...
- 重闯Sqli-labs关卡第二天(5关)
第五关(双注入GET单引号字符型注入-报错时间注入) 盲注盲注,Blind SQL Injection基于布尔SQL盲注基于时间的SQL盲注基于报错的SQL盲注 核心代码:(不会返回数据库中的数据) ...
- nginx转发php文件到php-fpm服务器提示502错误
实验将php文件转发给另一个php-fpm服务器处理的时候,出现了502错误: 检查了nginx错误日志,提示: 2019/08/25 17:54:56 [error] 4742#0: *35 rec ...
- Camtasia Studio,一款好用到爆炸的视频录制软件
目前网络中有很多视频录制软件,各有特色,经过亲测今天小编为大家推荐一款比较好的视频录制软件就是Camtasia Studio软件,Camtasia支持视频的高清录制以及视频的导入导出,而且最支持导出的 ...