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库, 事件驱动, 人机交互, 图形渲染, 多媒体应用, 客户端加密, 嵌入式开发, 开源库, 搜索引擎爬虫, 无后门, 游戏开发, 游戏引擎, 编程框架, 自由软件, 逆向工具, 音视频处理