整理:python架构师
Python 是最受欢迎的编程语言,可以说它是下一代编程语言。在计算机科学的每一个新兴领域,Python 都活跃地发挥着作用。Python 拥有众多用于不同领域的库,例如 机器学习(Numpy、Pandas、Matplotlib)、人工智能(Pytorch、TensorFlow)和游戏开发(Pygame、Pyglet)。
在这个教程中,我们将学习使用 Pygame(Python 库)进行游戏开发。
Pygame
-
Pygame 是一套跨平台的 Python 模块,用于创建视频游戏。
-
它包含了与 Python 编程语言一起使用的计算机图形和声音库。
-
Pygame 是由 Pete Shinners 正式编写,以替代 PySDL。
-
Pygame 适合创建客户端应用程序,可以被包装成独立可执行文件。
学习 Pygame 的先决条件:
在学习 pygame 之前,我们需要了解我们想开发什么样的游戏。
- 要学习 pygame,需要具备 Python 的基础知识。
Pygame 安装
在 Windows 中安装 Pygame
在安装 Pygame 之前,应该在系统中安装 Python,最好安装 3.6.1 或更高版本,因为它对初学者更友好,并且运行速度更快。安装 Pygame 主要有两种方式,如下所示:
1. 通过 pip 安装:安装 Pygame 的好方法是使用 pip 工具(Python 用于安装包的工具)。命令如下:
py -m pip install -U pygame --user
2. 通过 IDE 安装:第二种方法是通过 IDE 安装,这里我们使用 Pycharm IDE。在 Pycharm 中安装 pygame 很简单。我们可以通过在终端运行上述命令或使用以下步骤安装:
- 打开 文件 选项卡,点击 设置 选项。
- 选择 项目解释器 并点击 + 图标。
- 它将显示搜索框。搜索 pygame 并点击 安装包 按钮。
[**资源分享**](https://mp.weixin.qq.com/s?__biz=Mzg2MTYwOTM3MA==&mid=2247495196&idx=1&sn=a3b56b0afe431c57ef2824ed09fc90d3&chksm=ce1622e9f961abff941f84266c832093bc5ed66eed83fbf0ac8e3fa275918ec8ef63468f0a50&token=350626632&lang=zh_CN&scene=21#wechat_redirect)
要检查 pygame 是否正确安装,可以在 IDLE 解释器中输入以下命令并按 Enter:
import pygame
如果命令成功运行且没有抛出任何错误,这意味着我们已经成功安装了 Pygame,并找到了正确的 IDLE 版本用于 pygame 编程。
在 Mac 中安装 Pygame
安装 Pygame 的步骤如下:
- 访问 pygame 的官方网站 pygame.org,它将显示如下窗口,下载 pygame-1.9.1release-python.org-32bit-py2.7-macosx10.3.dmg:
注意:如果您使用的是不同版本的 Python,请下载最后一个链接。
-
双击下载的文件并解压缩。现在双击解压缩的 mpkg 文件以运行安装程序。按照指示安装 pygame。
-
启动终端(Cmd+Space,然后在搜索框中输入 ‘terminal’)。在终端中输入 ‘python2.7’ 并按 Enter。
-
Python 应该启动,显示版本为 2.7.2(2.7.1 也可以),并给你一个提示。在 Python 提示符下,输入 ‘import pygame’。如果没有出现任何错误,一切正常。
简单的 Pygame 示例
这里是一个简单的 pygame 程序,可以让您了解基本的语法。
import pygame pygame.init()` `screen = pygame.display.set_mode((400,500))` `done = False
while not done: for event in pygame.event.get():
if event.type == pygame.QUIT: done = True
pygame.display.flip()
输出:
成功执行后,它将显示如下窗口作为输出:
让我们逐行了解上述程序的基本语法:
import pygame - 这提供了访问 pygame 框架的功能,并导入了 pygame 的所有函数。
pygame.init() - 这用于初始化 pygame 所需的所有模块。
pygame.display.set_mode((width, height)) - 这用于显示所需大小的窗口。返回值是一个 Surface 对象,这是我们将进行图形操作的对象。
pygame.event.get()- 这用于清空事件队列。如果我们不调用此函数,窗口消息将开始堆积,游戏将在操作系统看来变得无响应。
pygame.QUIT - 当我们点击窗口角落的关闭按钮时,这用于终止事件。
pygame.display.flip() - Pygame 是双缓冲的,所以这会切换缓冲区。为了使您在游戏屏幕上所做的任何更新可见,必须调用此函数。
Pygame Surface
Pygame Surface 用于显示任何图像。Surface 具有预定义的分辨率和像素格式。Surface 的默认颜色是黑色。其大小由传递的 size 参数定义。
Surface 可以具有许多额外的属性,如 alpha 平面、色键、源矩形剪裁等。blit 例程将在可能的情况下尝试使用硬件加速;否则,它们将使用高度优化的软件 blitting 方法。
Pygame Clock
在 pygame 中,时间以毫秒(1/1000 秒)表示。Pygame 时钟用于追踪时间。时间对于创建运动、播放声音或响应任何事件至关重要。一般来说,我们不是按秒计时。我们按毫秒计时。时钟还提供了各种功能来帮助控制游戏的帧率。以下是一些函数:
tick()
这个函数用于更新时钟。语法如下:
tick(framerate=0)
每帧应该调用一次此方法。它会计算自上次调用以来经过了多少毫秒。framerate 参数是可选的,如果作为参数传递,则该函数将延迟以保持游戏运行速度低于给定的每秒帧数。
tick_busy_loop()
tick_busy_loop() 与 tick() 相同。通过每帧调用 Clock.tick_busy_loop(20),程序将不会以超过每秒 20 帧的速度运行。语法如下:
tick_busy_loop()