可以在浏览器中运行pygame或pyglet吗?

28 投票
6 回答
53334 浏览
提问于 2025-04-17 08:05

我在电脑上安装了三个游戏库:pyglet、pygame和Panda3D。

我想制作一个2D游戏,并把它放到网页上,这样我就可以在Facebook上分享。

我知道Panda3D有一个网页浏览器插件,但Panda3D主要是用来做3D游戏的。

所以我想问,能不能在浏览器里玩pyglet或者pygame的游戏?如果不行的话,你推荐哪个Python库呢?

6 个回答

4

这需要稍微重新编程一下,但我用Brython和GameJS把pygame库“移植”到了浏览器和nodewebkit上。你可以在浏览器中使用pygame和Python 3来编程。你可以在这里查看:https://github.com/asherwunk/pygjs

5

今天,我推荐使用 pygbag,链接在这里:https://pypi.org/project/pygbag/,这个工具来自于 https://pygame-web.github.io。它的工作原理和 Panda3D 的 WebGL 版本类似(不是旧的插件),是通过 Web Assembly 来支持现代浏览器的。

-- 编辑于 2023年11月22日 --

安装很简单:只需运行命令 pip3 install pygbag。

使用方法是:python3 -m pygbag 你的游戏文件夹/main.py。

通过 pygbag 工具,你可以直接在所有现代浏览器(包括 iOS 15 及以上的 Safari)中托管、运行或打包你的 pygame-ce 或 Panda3D 桌面项目。

这个工具已经被广泛应用于 2D 游戏创作活动,链接在这里:https://itch.io/c/2563651/pygame-wasm,你也可以开始 3D 项目,链接在这里:https://itch.io/c/3724091/panda3d-wasm

你还可以在 REPLit 上使用 pygame-ce wasm 和 pygbag,这样可以提升性能(使用过的人说效果很明显),具体可以查看这个链接:https://github.com/pygame-web/pygbag/issues/110

11

pyglet和pygame都不能在浏览器中运行。如果你的目标是要在网页上使用,实际上我不太建议用Python。JavaScript(结合HTML5画布)更适合这个环境。

不过,如果你真的想用Python,有一些项目可以把Python代码转成JavaScript。Python的维基上有提到一些相关的项目。这里列举几个:

不过你需要自己编写图形和音频系统,因为这些项目都不能把pyglet和pygame需要的原生代码转换成JavaScript。

撰写回答