【问题标题】:Is it possible to run game made with pygame on browser using pyscript?是否可以使用 pyscript 在浏览器上运行使用 pygame 制作的游戏?
【发布时间】:2022-08-06 18:52:13
【问题描述】:

我使用 pygame 制作了一个小型太空入侵者游戏,我想知道是否可以使用 pyscript 在浏览器上玩它。这甚至可能吗?我必须重写所有内容吗?

    标签: python python-3.x pygame pyscript


    【解决方案1】:

    不,PyScript 目前不支持 Pygame。我不确定找出哪些软件包的最佳方法是什么支持,但我设法拼凑了以下内容:

    1. PyScript 使用Pyodide 加载包,因此只有 Pyodide 支持的包才能在 PyScript 中加载。这意味着使用 Pyodide 构建的包或带有轮子的纯 Python 包可以在 PyPI 上或从其他 URL 获得。
    2. Pygame is not yet supported by Pyodide

      您可以使用以下测试脚本来查看是否支持包:

      <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) 获取所有列表 缺少轮子的包裹。

    【讨论】:

    【解决方案2】:

    是的,这是可能的,但尚未提供,因为:

    pyscript 使用 pyodide,pyodide 没有针对游戏进行优化,而是针对科学堆栈和笔记本演示。

    今天,我建议使用来自https://pygame-web.github.io 的pygbag https://pypi.org/project/pygbag/。它使用适用于来自 Panda3D webgl 端口的 pygame 的相同原理,使用现代浏览器的 Web Assembly。

    (如果你真的想支持 pyscript 标签,你可能会找到一种方法)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-17
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多