整理: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()
发表评论