跳转到内容

PyGame 指南/准备就绪

来自维基教科书,开放世界中的开放书籍

关于本指南

[编辑 | 编辑源代码]
Example game screenshot
示例游戏截图

本指南涵盖哪些内容?

首先,本指南涵盖 Python 语言的基本语法和用法,以防您来自其他语言。如果您已经在 Python 中进行过编程,您可以跳过 "Python 快速入门" 部分。

其次,本指南还涵盖了构建功能性 2D 游戏所需的 PyGame 基础知识。"PyGame 快速入门" 快速地介绍了所有基本功能,并提供了示例代码。

在掌握 Python 和 PyGame 的基础知识后,我们将在 "PyGame 菜谱" 中深入构建一些简单的 2D 游戏。

最后,有一个 "快速参考" 指南,分别针对 PythonPyGame,之后是 词汇表,以防您需要回顾本书中使用的任何术语。

先决条件

[编辑 | 编辑源代码]

我需要具备哪些先前的经验?如果您之前已经使用面向对象的语言(如 C++、C# 和/或 Java)进行过编程,那么本指南将最适合您。在 "Python 快速入门" 章节中,我将介绍一些 Python 的基础知识,以便您熟悉其语法,但这并不是一个编程入门课程,它不会涵盖您在之前的课程中会学到的理论和基础知识。

如果我以前没有编程过怎么办?

如果您以前从未参加过编程课程,您也许能够使用本指南开始学习 2D 编程,但您会遇到解决问题的难度障碍——但别担心,网上有很多免费指南可以用来学习!

什么是 Python 和 PyGame?

[编辑 | 编辑源代码]
Python Logo
Python 标识

Python 是一种解释型高级编程语言。在这种情况下,"高级" 指的是更远离机器代码。"高级" 并不意味着它更难——实际上,高级语言通常比 C 等低级语言更容易使用。作为一种语言,Python 可以以面向对象的方式编写(如果您来自 C++/C#/Java 阵营,应该很熟悉),但也支持其他编程范式——或其他代码结构和编写方式。我更喜欢使用面向对象的技术编写游戏。

PyGame 是一个可以与 Python 一起使用的库。库是预先编写的代码,可以在多个程序中重复使用。这通常包括提供新功能的函数和类。

PyGame 处理以下功能:

  • 加载和绘制图形
  • 加载和播放声音
  • 加载字体和绘制文本
  • 检测键盘和鼠标输入

此外,PyGame 旨在跨平台使用,因此您可以在自己的机器上编写一个游戏,而您的朋友可以在 Linux、Mac、Windows 甚至移动设备上运行该游戏!

设置 Python 和 PyGame

[编辑 | 编辑源代码]
The PyGame Logo.
PyGame 标识。

下载 PyGame

[编辑 | 编辑源代码]

PyGame 网站提供了 PyGame 的下载链接,以及入门教程、PyGame 文档,甚至是用 PyGame 制作的游戏目录。您创建游戏后,也可以将您的游戏放到目录中!PyGame 网站地址为 pygame.org

对于 Windows,您需要从这里下载 PyGame 的版本:http://pygame.org/download.shtml

找到 "Windows" 标题并下载标题中包含 "py2.7" 的 PyGame 版本。在撰写本文时,最新版本为 pygame-1.9.1.win32-py2.7.msi

Python 版本

Python 的版本 2 和版本 3 之间存在很多差异,并且彼此之间并不总是兼容。此版本的 PyGame 使用 Python 2.7。

(Windows 指示正在进行中)


(Linux 指示正在进行中)

如果您使用的是 Ubuntu、Linux Mint 或 Debian,则应该能够通过 Synaptic 包管理器甚至软件管理器安装 Python。

搜索 "pygame",您应该下载 python-pygame 包。它还应该同时安装 Python 依赖项。


(Mac 指示正在进行中)

对于 Mac,您需要从这里下载 PyGame 的版本:http://pygame.org/download.shtml

找到 "Macintosh" 标题并下载 py2.7 版本。


下载文本编辑器

[编辑 | 编辑源代码]

源代码都是文本,因此您需要一个不错的文本编辑器来编写。Windows 默认的记事本是一个很糟糕的程序,因此您应该下载其他工具。

Geany 是一款免费的跨平台编辑器。您也可以在 Geany 中安装额外的插件来自定义它。从以下地址下载:http://www.geany.org/Download/Releases


(文本编辑器说明正在进行中)

测试一下

[编辑 | 编辑源代码]

让我们通过一些小的示例程序确保 Python 和 PyGame 能够正常工作。您可以重新输入本文档中给出的代码,或者从指南库中下载文件:bitbucket.org/moosaderllc/rachels-pygame-guide

确保 Python 正常工作

[编辑 | 编辑源代码]

首先,在您的计算机上创建一个用于 Python 项目的目录,并为该项目创建一个文件夹(“Testing Python”或其他名称)。首先,我们将只创建一个 Python 程序,然后我们将创建一个 PyGame 程序。

在 Geany 中,创建一个新文件,并将其保存到您的项目目录中,命名为 simple python.py。确保它具有 .py 扩展名 - 所有 Python 源文件都必须以它结尾。

Windows 注意!

如果您使用的是 Windows,您的文件夹选项可能设置为默认情况下隐藏文件扩展名。您可能需要将所有扩展名设置为可见,这样您就不会感到困惑!

将以下代码添加到您的源文件中

print( "Hello, world!" )
for i in range( 1, 10 ):
  print( i )

如果您使用的是 Geany,您可以通过按 F5 运行 Python 程序。


示例输出

[编辑 | 编辑源代码]

运行完成后,Python 程序输出应该如下所示

Hello, world!
1
2
3
4
5
6
7
8
9


确保 PyGame 正常工作

[编辑 | 编辑源代码]

接下来,我们将创建一个简单的 PyGame 测试,以确保我们可以打开一个窗口。创建一个名为 simple pygame.py 的另一个源文件。将以下代码粘贴进去。如果您还不了解代码,请不要担心 - 这只是为了确保一切都设置正确!

import pygame, sys
from pygame.locals import *

pygame.init()
timer = pygame.time.Clock()
window = pygame.display.set_mode( ( 300, 300 ) )
pygame.display.set_caption( "Testing out PyGame!" )

# Game loop
while True:
  window.fill( pygame.Color( 50, 200, 255 ) )
  
  # Check input
  for event in pygame.event.get():
    if ( event.type == QUIT ):
      pygame.quit()
      sys.exit()
    
  # Update screen
  pygame.display.update()
  timer.tick( 30 )

运行后,您应该会得到一个带有浅蓝色背景的小窗口。

A small window with a light blue background
带有浅蓝色背景的小窗口

完成操作后,您可以关闭窗口。

如果它没有工作怎么办?!

有时会发生这种情况!如果您在运行程序时遇到问题,您可以执行一些操作来调试它...

  • 仔细检查所有文本和符号是否有错别字 - 这些错误很容易出现!还要确保您的大小写正确,PyThOn 是 CaSe SeNsItIvE 的!
  • 中下载文件,并尝试运行它。比较我的代码和您的代码,看看有什么不同。
  • 搜索您收到的错误消息 - 很可能其他人也遇到过同样的问题!


如何从库中下载文件?

您可以在以下链接找到库:https://bitbucket.org/moosaderllc/rachels-pygame-guide/。在该页面上,如果您熟悉 Git,可以使用 Clone 按钮,或者您可以点击 Downloads 找到一个链接,将所有文件下载到您的计算机上。


下一步是什么?

干得好!接下来,我们将介绍 Python 的一些功能,以便您熟悉它的语法!

华夏公益教科书