pygame/pygame
GitHub: pygame/pygame
基于 SDL 的开源 Python 多媒体库,提供 2D 图形渲染、声音播放和输入处理功能,帮助开发者快速构建游戏和交互式应用。
Stars: 8696 | Forks: 4069
.. image:: https://raw.githubusercontent.com/pygame/pygame/main/docs/reST/_static/pygame_logo.svg
:alt: pygame
:target: https://www.pygame.org/
|AppVeyorBuild| |PyPiVersion| |PyPiLicense|
|Python3| |GithubCommits| |BlackFormatBadge|
Pygame_ 是一个免费的开源跨平台库,
用于使用 Python 开发视频游戏等多媒体应用程序。
它使用 `Simple DirectMedia Layer library`_ 以及其他几个
流行的库来抽象最常用的功能,使编写
这些程序成为一项更直观的任务。
`We need your help`_ 让 pygame 成为最好的库!
欢迎新的贡献者。
## 安装
在安装 pygame 之前,你必须检查你的机器上是否安装了
Python。要查明这一点,请打开命令提示符(如果你使用的是
Windows)或终端(如果你使用的是 MacOS 或 Linux)并输入以下内容:
::
python --version
如果出现诸如“Python 3.8.10”的信息,则表示 Python
已正确安装。如果出现错误信息,则表示
尚未安装。你必须然后前往 `official website
`_ 进行下载。
安装 Python 后,你必须进行最后一步检查:
查看是否安装了 pip。通常,pip 会随
Python 预装,但我们无法绝对保证。与检查 Python 相同,输入以下
命令:
::
pip --version
如果出现诸如“pip 20.0.2 from /usr/lib/python3/dist-packages/pip
(python 3.8)”的信息,你就可以准备安装 pygame 了!要安装
它,请输入此命令:
::
pip install pygame
安装 pygame 后,通过输入以下命令快速测试你的库,该命令会打开一个预装的示例游戏:
::
```
python3 -m pygame.examples.aliens
```
如果这不起作用,官方网站的 `Getting Started
`_ 部分提供了有关平台特定问题的更多信息,例如如何将
python 添加到你机器的 PATH 设置中
## 帮助
如果你刚刚开始接触 pygame,你应该能够
很快上手。Pygame 附带了许多教程和
简介。还有针对
整个库的完整参考文档。在 `docs page`_ 上浏览文档。你
还可以通过在终端中运行
``python -m pygame.docs`` 在本地浏览文档。如果在本地
找不到文档,它将改为启动在线网站。
在线文档与 GitHub 上的 pygame 开发版本保持同步。
这可能比你当前使用的 pygame 版本要新一些。要升级到最新的完整版本,请在你的终端中运行
``pip install pygame --upgrade``。
最棒的是,examples 目录中有许多可运行的小程序,
可以让你立即开始把玩代码。
## 功能
Pygame 是一个用于游戏开发的强大库,提供了广泛的
功能来简化你的编码之旅。让我们深入探讨
pygame 提供了哪些功能:
图形 - 使用 pygame,创建动态且引人入胜的图形
变得前所未有的简单。该库为
2D 图形和动画提供了简单而有效的工具,包括对图像、矩形
和多边形形状的支持。无论你是经验丰富的游戏开发者还是刚
起步,pygame 都能满足你的需求。
声音 - Pygame 还包括对播放和操作声音
及音乐的支持,让你可以轻松地将音效和背景音乐添加到你的
游戏中。支持 WAV、MP3 和 OGG 文件格式,你
有充足的选择。
输入 - Pygame 提供了直观的函数来处理键盘、鼠标
和游戏杆输入,让你能够在游戏中快速轻松地实现玩家
控制。不再为复杂的输入代码而苦恼,pygame
让它变得简单。
游戏开发 - 最后,pygame 提供了一套全面的工具
和专门为游戏开发设计的功能。从碰撞
检测到精灵管理,pygame 拥有你创建
激动人心且引人入胜的游戏所需的一切。无论你是在制作平台游戏、解谜
游戏,还是介于两者之间的任何游戏,pygame 都能满足你的需求。
## 从源代码构建
如果你想使用目前正在开发中的功能,
或者你想为 pygame 做贡献,你需要从其源代码在本地构建 pygame,
而不是通过 pip 安装它。
从源代码安装是相当自动化的。最多的工作将
涉及编译和安装所有的 pygame 依赖项。一旦
完成,运行 ``setup.py`` 脚本,它将尝试自动配置、构建和安装 pygame。
关于安装和编译的更多信息,可以在
`Compilation wiki page`_ 上找到。
## 贡献
* `Documentation Contributions `_ - 为主文档做贡献的指南
* `Writing your first unit test `_ - 关于如何为 Pygame 用 Python 编写你的第一个单元测试的分步指南。
* `How to Hack Pygame `_ - 关于破解、开发和修改 Pygame 的信息
* `Issue Tracker for beginners `_ - 初学者为项目做贡献的一种方式
* `Bugs & Patches `_ - 报告 Bug
* `Communication tools `_ - 更多信息以及联系 Pygame 团队的方式
## 依赖
Pygame 显然非常依赖于 SDL 和 Python。它也
链接并嵌入了其他几个较小的库。字体
模块依赖于 SDL_ttf,而 SDL_ttf 又依赖于 freetype。混音器
(和 mixer.music)模块依赖于 SDL_mixer。图像模块
依赖于 SDL_image,后者还可以使用 libjpeg 和 libpng。
变换模块嵌入了 SDL_rotozoom 的一个版本,用于其
自有的 rotozoom 功能。surfarray 模块需要 Python
NumPy 包来处理其多维数值数组。
依赖版本:
+----------+------------------------+
| CPython | >= 3.6 (或使用 PyPy3) |
+----------+------------------------+
| SDL | >= 2.0.8 |
+----------+------------------------+
| SDL_mixer| >= 2.0.0 |
+----------+------------------------+
| SDL_image| >= 2.0.2 |
+----------+------------------------+
| SDL_ttf | >= 2.0.11 |
+----------+------------------------+
| SDL_gfx | (可选,已内嵌) |
+----------+------------------------+
| NumPy | >= 1.6.2 (可选) |
+----------+------------------------+
## 许可证
本库在 `GNU LGPL version 2.1`_ 下分发,该协议可
在 ``docs/LGPL.txt`` 文件中找到。我们保留将
本库的未来版本置于不同许可证下的权利。
这基本上意味着你可以在任何你想要的项目中使用 pygame,
但如果你对 pygame 本身进行了任何更改或添加,这些
必须在兼容的许可证下发布(最好提交回
pygame 项目)。闭源和商业游戏都是允许的。
``examples`` 子目录中的程序位于公共领域。
有关依赖项的许可证,请参见 docs/licenses。
.. |AppVeyorBuild| image:: https://ci.appveyor.com/api/projects/status/x4074ybuobsh4myx?svg=true
:target: https://ci.appveyor.com/project/pygame/pygame
.. |PyPiVersion| image:: https://img.shields.io/pypi/v/pygame.svg?v=1
:target: https://pypi.python.org/pypi/pygame
.. |PyPiLicense| image:: https://img.shields.io/pypi/l/pygame.svg?v=1
:target: https://pypi.python.org/pypi/pygame
.. |Python3| image:: https://img.shields.io/badge/python-3-blue.svg?v=1
.. |GithubCommits| image:: https://img.shields.io/github/commits-since/pygame/pygame/2.1.2.svg
:target: https://github.com/pygame/pygame/compare/2.1.2...main
.. |BlackFormatBadge| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
.. _pygame: https://www.pygame.org
.. _Simple DirectMedia Layer library: https://www.libsdl.org
.. _We need your help: https://www.pygame.org/contribute.html
.. _Compilation wiki page: https://www.pygame.org/wiki/Compilation
.. _docs page: https://www.pygame.org/docs/
.. _GNU LGPL version 2.1: https://www.gnu.org/copyleft/lesser.html
标签:2D游戏, GUI开发, OpenGL, pip安装, pygame, Python, SDL库, 事件驱动, 人机交互, 图形渲染, 多媒体应用, 客户端加密, 嵌入式开发, 开源库, 搜索引擎爬虫, 无后门, 游戏开发, 游戏引擎, 编程框架, 自由软件, 逆向工具, 音视频处理