有什么方法可以获取可执行二进制文件(.exe)并以某种方式 "compile" .wasm

Is there any way to take executable binary (.exe) and somehow "compile" .wasm

我正在 pygame 开发一款 2d 游戏,我希望它可以在网络上使用。在我看来,挑战自我的一种有趣方式是使用 Web Assembly 使游戏在 Web 上可用。所以我想知道是否有任何方法可以获取可执行二进制文件 (.exe) 并以某种方式“编译”.wasm,如果此时仍然可以的话)到

就我个人而言,我没有太多结合 .py 和 .wasm 文件的经验,但我确实知道一些关于 运行ning Pygame:

的东西
  1. 首先,您可以运行基本Pygame个文件here。我在互联网上搜索了一个独立的 Pygame 运行ning 引擎,这是我唯一能找到的引擎。
  2. 其次,您可以使用 PyInstaller 将您的 Pygame 文件本身转换为 .exe(它很好地打包,但无法签名,因此某些计算机可能认为它是病毒)。我不知道如何在网络上专门 运行 这个,但是如果你能设法找到一个网络平台可以 运行 它与 window,那么你也许可以尝试 运行 .exe 与 Javascript 并将 .wasm 连接到那个。
  3. 第三,我不确定是否有办法在 Web Assembly 中使用单独的 window 运行 .exe 文件,但我对 wasm 不太熟悉。

希望对您有所帮助!

运行 在浏览器中通过 WebAssembly (WASM) 的 .exe 将非常缓慢且效率低下,但仍然可以使用 Wasm PC 模拟器(例如 v86)+ OS(例如 React OS).

但是如果你能获得游戏源代码那么 你可以做的是使用支持 WebAssembly 目标的 CPython 3.11(在 Emscripten 的帮助下,一个 C/C++ 编译器针对 WASM)。

添加 PyGame 的最新开发版本和对游戏主循环源代码的小改动。

如果您使用 emscripten 文件打包器而不是 .exe 打包源代码和资产,您现在可以 运行 直接玩游戏,您将拥有一个 .wasm (cpython) + 一个 .data(资产+代码) ) 和一些 javascript 胶水来加载它们。

请注意,目前还没有直接的工具可以立即做到这一点,但在 CPython 3.11 发布后,情况很可能会很快发生变化。