可以在浏览器中运行pygame或pyglet吗?
6 个回答
这需要稍微重新编程一下,但我用Brython和GameJS把pygame库“移植”到了浏览器和nodewebkit上。你可以在浏览器中使用pygame和Python 3来编程。你可以在这里查看:https://github.com/asherwunk/pygjs
今天,我推荐使用 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。
pyglet和pygame都不能在浏览器中运行。如果你的目标是要在网页上使用,实际上我不太建议用Python。JavaScript(结合HTML5画布)更适合这个环境。
不过,如果你真的想用Python,有一些项目可以把Python代码转成JavaScript。Python的维基上有提到一些相关的项目。这里列举几个:
- Skulpt
- Pyjamas
- Pyjaco
不过你需要自己编写图形和音频系统,因为这些项目都不能把pyglet和pygame需要的原生代码转换成JavaScript。