跳转到主要内容

pyglet是一个跨平台的游戏和多媒体包。

项目描述

pypi rtd PyTest

logo_large.png

pyglet

pyglet 是一个用于Python的跨平台窗口和多媒体库,旨在开发游戏和其他视觉丰富的应用程序。它支持窗口、输入事件处理、控制器 & 游戏手柄、OpenGL图形、加载图像和视频以及播放声音和音乐。 pyglet 在Windows、OS X和Linux上运行。

:exclamation: :exclamation: pyglet刚刚发布了一个重大更新(v2.0)。这带来了许多新功能,但也需要进行一些必要的破坏性更改。如果您的游戏/应用程序突然停止工作,请阅读文档中的迁移部分。pyglet的前一个版本在pyglet-1.5-maintenance分支中跟踪。如果您想对上一个版本进行拉取请求,请针对适当的分支

:exclamation: 在 pyglet v2.1 中将移除 pyglet.graphics.drawpyglet.graphics.draw_indexedshapes 模块是绘制简单形状的替代方案。

pyglet 拥有一个活跃的开发者和用户社区。如果您发现错误或文档中的问题,请 提交问题。任何人都可以加入我们的 discord 服务器,那里正在进行许多开发讨论。这也是寻求帮助的好地方。

pyglet 的一些功能包括

  • 无外部依赖或安装要求。 对于大多数应用程序和游戏的要求,除了 Python 之外,pyglet 不需要任何其他东西,简化了分发和安装。使用 NuitkaPyInstaller 很容易打包和分发您的项目。
  • 利用多个窗口和多显示器桌面。 pyglet 允许您使用多个平台原生的窗口,并且完全了解多显示器设置,用于全屏游戏。
  • 加载几乎任何格式的图像、声音、音乐和视频。 pyglet 可选使用 FFmpeg 来播放 MP3、OGG/Vorbis 和 WMA 等音频格式,以及 MPEG2、H.264、H.265、WMV 和 Xvid 等视频格式。如果不使用 FFmpeg,pyglet 内置了对 wav、png、bmp 等标准格式的支持。
  • pyglet 完全使用纯 Python 编写,并使用 ctypes 模块与系统库进行接口。您可以在没有任何其他语言编译步骤或编译器设置的情况下修改代码库或做出贡献。尽管是纯 Python,但由于对绘制成千上万个对象进行了高级批处理,pyglet 具有出色的性能。
  • pyglet 在 BSD 开源许可下提供,允许您在不加太多限制的情况下将其用于商业和其他开源项目。

需求

pyglet 在 Python 3.8+ 上运行。由于它是用纯 Python 编写的,它还适用于 PyPy 等其他 Python 解释器。支持的平台包括

  • Windows 7 或更高版本
  • Mac OS X 10.3 或更高版本
  • Linux,需要以下库(大多数最新发行版都将默认安装这些库)
    • OpenGL 和 GLX
    • GDK 2.0+ 或 Pillow(用于加载 PNG 和 BMP 之外的其他图像)
    • OpenAL 或 Pulseaudio(用于播放音频)

从 pyglet 2.0 开始,需要 OpenGL 3.3+.

为了播放各种压缩的音频和视频文件,pyglet 可选使用 FFmpeg

安装

可以从 PyPI 安装 pyglet

pip install --upgrade --user pyglet

从源代码安装

如果您是从源代码分布中阅读此 README,您可以使用以下方式安装 pyglet

pip install --upgrade --user .
# or
python setup.py install --user

您还可以直接从 Github 安装最新开发版本

pip install --upgrade --user https://github.com/pyglet/pyglet/archive/master.zip

对于本地开发,以可编辑模式安装 pyglet

# with pip
pip install -e .
# with setup.py
python setup.py develop

安装过程中没有编译步骤;如果您愿意,您可以将此目录添加到您的 PYTHONPATH 中,并使用 pyglet 而不安装它。您还可以将 pyglet 直接复制到您的项目文件夹。

贡献

通过参与pyglet组件的文档编写是一个很好的开始。 在研究你将要工作的代码时,也要阅读相关的文档。如果你在文档的帮助下仍然不理解代码,这表明文档需要改进。如果你希望对pyglet的任何部分进行重大修改,首先寻求反馈总是一个好主意。这可以避免在有人已经在进行类似工作或你的想法由于任何原因无法被接受的情况下浪费精力。

以下是如何贡献的基本概述

  • 官方仓库进行Fork。
  • 在你自己的Fork中,检出你希望贡献的分支(例如pyglet-1.5-maintenance)。
  • 将你的更改应用到你的Fork中。
  • 提交一个pull request,描述你所作的更改。
  • 或者你可以创建一个补丁并将其提交到问题跟踪器。

在提交pull request时,请确保你已经解决了相应的文档,包括代码文档字符串和编程指南(如果适用)。确保文档与最新代码相符,反之亦然对我们所有人来说都非常重要。

因此,无论是由于难以理解还是因为与代码不符,文档中的错误都是一个值得在票据上报告的bug。

构建文档

为了快速开始

pip install -r doc/requirements.txt
./make.py docs

请查看文档和类型提示指南,了解更多信息。

测试

pyglet使用pytest作为其测试套件。

pip install -r tests/requirements.txt --user
# Only run unittests
pytest tests/unit

请查看开发指南中的测试部分,了解更多关于运行和编写测试的信息。

联系

pyglet由许多个人志愿者开发,没有中央联系点。如果你对使用pyglet进行开发有问题,或者你想做出贡献,请加入邮件列表Discord服务器subreddit

有关法律问题,请联系Alex Holkner

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

pyglet-2.0.17.tar.gz (6.5 MB 查看哈希值)

上传时间 源代码

构建分发

pyglet-2.0.17-py3-none-any.whl (936.6 kB 查看哈希值)

上传时间 Python 3

由以下支持