我使用 pygame 制作了一个小型太空入侵者游戏,我想知道是否可以使用 pyscript 在浏览器上玩它。这可能吗?我必须重写所有内容吗?
不,PyScript 目前不支持 Pygame。我不确定找出支持哪些软件包的最佳方法是什么,但我已经设法将以下内容拼凑在一起:
PyScript 使用<html>
<head>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env>
- pygame
</py-env>
</head>
<body>
<h1>PyScript import test script</h1>
<py-script>
import pygame
</py-script>
</body>
</html>
这基本上只是一个“尝试一下,看看会发生什么”脚本,如果不支持某个包,它将在控制台中抛出错误。您将看到的错误是
ValueError:找不到“pygame”的纯 Python 3 轮子。你可以 使用
micropip.install(..., keep_going=True)
获取所有列表 缺少轮子的包裹。
pyscript 使用 pyodide,pyodide 并未针对游戏进行优化,而是针对科学堆栈和笔记本演示进行优化。
今天,我建议使用 pygbag
https://pypi.org/project/pygbag/来自 https://pygame-web.github.io。它使用与来自 Panda3D webgl 端口的 pygame 相同的原理,使用现代浏览器的 Web Assembly。 (如果你真的想支持 pyscript 标签,你可能会找到一种方法)。
这里有一篇文章的链接:浏览器中的 Pygame