用PYGAME制作游戏

目录

1. Introduction

2. Revision: Pygame fundamentals

3. Kicking things off

4. Game object classes

5. User-controllable objects

6. Putting it all together

1.引言

首先,我假设您已经阅读了 Line By Line Chimp 教程,它介绍了Python和pyGame的基础知识。在阅读本教程之前,请仔细阅读它,因为我不会费心重复该教程所说的内容(或者至少不会重复太多细节)。本教程的目标读者是那些了解如何制作简单得离谱的小“游戏”的人,以及那些想要制作像Pong这样相对简单的游戏的人。它向你介绍了一些游戏设计的概念,一些解决球物理问题的简单数学方法,以及一些使你的游戏易于维护和扩展的方法。

本教程中的所有代码都致力于实现 TomPong ,这是我写的一个游戏。在本教程结束时,您不仅应该更扎实地掌握了pyGame,还应该了解TomPong是如何工作的,以及如何制作自己的版本。

现在,让我们来简要回顾一下电子游戏的基本知识。组织游戏代码的一种常见方法是将其分为以下六个部分:

  • 加载模块 这些都是游戏中需要的。标准的东西,只是您应该记住导入pyGame本地名称以及pyGame模块本身。

  • 资源处理类 ;定义一些类来处理您最基本的资源,这些资源将加载图像和声音,以及连接和断开网络,加载保存的游戏文件,以及您可能拥有的任何其他资源。

  • 游戏对象类 ;定义游戏对象的类。在PONG示例中,一个用于球员的球拍(可以多次初始化,一个用于游戏中的每个球员),一个用于球(也可以有多个实例)。如果你想要有一个很好的游戏菜单,做一个菜单类也是一个好主意。

  • 任何其他游戏功能 ;定义其他必要的功能,如记分板、菜单处理等。任何你可以放入主游戏逻辑中的代码,但这会使你更难理解所述逻辑,应该放入它自己的功能中。因此,由于绘制记分板不是游戏逻辑,它应该被移到一个函数中。

  • 初始化游戏 ,包括pyGame对象本身、背景、游戏对象(初始化类的实例)以及您可能想要添加的任何其他小代码。

  • 主循环 ,您可以在其中放置任何输入处理(例如,观察用户是否击键/鼠标按钮)、更新游戏对象的代码,最后是更新屏幕的代码。

你制作的每一款游戏都会有一些或所有这些部分,可能会有更多你自己的部分。出于本教程的目的,我将写关于TomPong是如何布局的,我所写的想法可以转移到您可能制作的几乎任何类型的游戏中。我还假设您希望将所有代码保存在一个文件中,但如果您正在制作一个相当大的游戏,将某些部分放入模块文件中通常是一个好主意。将游戏对象类放入一个名为 objects.py 例如,可以帮助您将游戏逻辑与游戏对象分开。如果您有大量的资源处理代码,那么将其放入 resources.py 。然后你就可以 from objects,resources import * 导入所有类和函数。

1.1.关于编码样式的说明

在进行任何编程项目时,首先要记住的是确定一种编码风格,并保持一致。由于它对空格和缩进的严格解释,Python解决了很多问题,但您仍然可以选择缩进的大小,是否将每个模块导入放在新的行上,如何注释代码等。您将在代码示例中看到我是如何做到这些的;您不需要使用我的样式,但无论您采用什么样式,都可以在整个程序代码中使用它。还要尝试记录您的所有类,并对任何看起来晦涩难懂的代码进行注释,尽管不要开始注释显而易见的代码。我见过很多人这样做:

player1.score += scoreup        # Add scoreup to player1 score

最糟糕的代码布局很差,样式看起来是随机变化的,文档也很差。糟糕的代码不仅令人讨厌,而且还会使您难以维护。




Edit on GitHub