用Python和Pygame模块搭建游戏框架。
开始之前,你必须安装Pygame。
有几种方法可以安装Python模块,但最常用的两种方法是:
这两种方法都很有效,而且各有各的优点。如果您在Linux或BSD上开发,您可以使用您的发行版的软件库来自动和及时地更新它。
但是,使用Python内置的包管理器可以让您控制更新模块的时间。此外,它不是特定于操作系统的,这意味着即使您不在通常的开发机器上,也可以使用它。pip的另一个优点是,它允许在本地安装模块,如果您在正在使用的计算机上没有管理权限,这很有用。
如果你的系统上同时安装了Python和Python3,你要用的命令很可能是pip3,用来区分Python 2.x的pip命令,如果你不确定,先试试pip3。
Pip命令的工作有点像大多数Linux包管理器。您可以使用search来搜索Python模块,然后使用install来安装它们。如果您没有在正在使用的计算机上安装软件的管理权限,则可以使用- user选项仅将该模块安装到您的主目录中。
Pygame是一个Python模块,这意味着它只是一组可以在您的Python程序中使用的库。换句话说,它不是一个你可以像IDLE或Ninja-IDE那样启动的程序。
电子游戏需要一个背景:故事发生的地方。在Python中,有两种不同的方法来创建故事背景:
你的背景只是一张图片或者一种颜色。你的电子游戏角色不能和背景中的东西互动,所以不要把太重要的东西放在他们后面。只是布置装饰品而已。
要启动一个新的Pygame项目,首先在电脑上创建一个文件夹。游戏的所有文件都放在这个目录里。将运行游戏所需的所有文件保存在项目文件夹中是非常重要的。
Python脚本以文件类型、您的名称和您想要使用的许可开始。使用开源许可证,以便您的朋友可以改进您的游戏并与您分享他们的更改:
然后,你告诉Python你想用哪个模块。有些模块是常见的Python库。当然,您希望包含一个刚刚安装的Pygame模块。
因为您将使用这个脚本文件做大量的工作,所以将文件分成几个段落会很有帮助,这样您就知道将代码放在哪里了。您可以通过使用块注释来做到这一点,这些注释只有在您查看源代码时才可见。在代码中创建三个块。
接下来,设置游戏的窗口大小。注意,不是每个人都有大的电脑屏幕,所以最好使用适合大多数人的电脑屏幕尺寸。
这里有一个切换全屏模式的方法,很多现代的电子游戏都会这么做,但是既然你刚开始,为了简单起见就设置一个大小吧。
在脚本中使用Pygame引擎之前,你需要一些基本的设置。你必须设置帧速率,启动它的内部时钟,然后初始化init)Pygame。
现在你可以设置你的背景。
在继续之前,请打开一个图形应用程序,为您的游戏世界创建一个背景。保存为stage.png在图像文件夹中的项目目录。
这里有一些你可以使用的免费图形应用程序。
你的形象不需要很复杂,可以回头再改。一旦有了它,就将这段代码添加到文件的Setup部分:
如果你只用一种颜色填充游戏的背景,你需要做的就是:
您还必须定义要使用的颜色。在您的设置部分,使用红色、绿色和蓝色(RGB)的值来创建一些颜色定义。
此时,理论上你可以开始你的游戏了。问题是它可能只能持续一毫秒。
为了证明这一点,将您的文件保存为your-name_game.py(用您的真实姓名替换您的姓名)。然后开始你的游戏。
如果你使用空闲模式,从“运行”菜单中选择“运行模块”来运行你的游戏。
如果您使用的是Ninja,请单击左侧按钮栏中的“运行文件”按钮。
您也可以直接从Unix终端或Windows命令提示符运行Python脚本。
如果您使用的是Windows,请使用以下命令:
开始吧,但是不要期望太高,因为你的游戏现在只持续几毫秒。您可以在下一节中修复它。
除非另有说明,否则Python脚本只运行一次。最近电脑运行速度很快,所以你的Python脚本运行不到1秒。
要强制你的游戏开放和活跃足够长的时间让人们看到它(更不用说玩它),使用while循环。为了让你的游戏保持开放,你可以设置一个变量为一些值,然后告诉一个while循环,只要变量保持不变就保持循环。
这通常被称为“主循环”,您可以使用术语main作为您的变量。在设置部分的任意位置添加代码:
在主循环期间,使用Pygame关键字检查键盘上的键是否被按下或释放。将这段代码添加到主循环中:
同样在你的周期里,刷新你的世界背景。
如果您使用图片作为背景:
如果您使用一种颜色作为背景:
最后,告诉Pygame刷新屏幕上的一切,并提前游戏的内部时钟。
保存你的文件,再次运行它,看看你曾经创造的最无聊的游戏。
退出游戏,按下键盘上的Q键。
在本系列的下一篇文章中,我将向您展示如何强化您当前的空游戏世界,因此继续学习并创建一些要使用的图形!
via:/article/17/12/game-framework-python
作者:Seth Kenlon题目:lujun9972译者:robsean校对:wxy