【发布时间】:2021-06-23 04:08:46
【问题描述】:
我正在为网络开发一款 2D 游戏。为此,我打算使用“画布”并从那里渲染我的游戏。为了获得更好的性能,我想使用 Java 或 C# 等语言。经过研究,我发现这可以通过 WebAssembly 实现。所以,我的问题是:如何创建一个 webassembly 文件(使用 C# 或 java)以及如何将它返回的 html 添加到 React 页面。
【问题讨论】:
标签: java c# html canvas webassembly
我正在为网络开发一款 2D 游戏。为此,我打算使用“画布”并从那里渲染我的游戏。为了获得更好的性能,我想使用 Java 或 C# 等语言。经过研究,我发现这可以通过 WebAssembly 实现。所以,我的问题是:如何创建一个 webassembly 文件(使用 C# 或 java)以及如何将它返回的 html 添加到 React 页面。
【问题讨论】:
标签: java c# html canvas webassembly
Webassembly 在渲染方面不一定比 JS 快,因为 Webassembly 不能直接访问 DOM。相反,您必须创建从 javascript 到 WebAssembly 代码的“绑定”。
因此,您可以将 Webassembly 连接到 canvas 的方法是使用 Webassembly 将写入的 ArrayBuffer,然后 javascript 会读取数据并将其放入画布中。
但渲染仍将通过 javascript 线程完成。除非您使用ArrayBuffer 的相同实例来传递数据,否则我认为它不会更快。
Example of rendering to canvas from WebAssembly
我知道你可以使用Blazor,这个 C# 框架允许你在浏览器中执行 C# 代码(它将整个 .NET 运行时发送到客户端),并编译为 WebAssembly
【讨论】: