#miniquad #web #gamedev

quad-wasmnastics

用于使高级 Macroquad 在 wasm 上运行的体操工具

6 个版本

0.3.0 2021 年 12 月 18 日
0.2.1 2021 年 6 月 2 日
0.1.2 2021 年 6 月 1 日

#633WebAssembly

Download history 4/week @ 2024-03-26 27/week @ 2024-04-02 1/week @ 2024-04-23 1/week @ 2024-05-14 11/week @ 2024-05-21 12/week @ 2024-05-28

每月 72 次下载

MIT 许可证

48KB
853

quad-wasmnastics

crates.io API documentation

用于使高级 Macroquad 在 wasm 上运行的体操工具。

重要:为了在 WASM 上使用此工具,您必须在运行任何 WASM 代码之前,在您的 HTML 文件中使用 js/wasmnastics.js 脚本!为了获得最佳效果,请将其放置在您的 mq_js_bundle.js 之后。

另外也很重要:此代码未经过充分测试,请在使用时小心。

异步操作

许多 Web API 使用 JavaScript async,而在桌面上的类似 API 是同步的,如剪贴板访问。

这个 crate 提供了用于此目的的 Waiter 结构体。它与标准库中的 Poll 类似:创建后,您可以查询它以查看值是否已到达。在桌面上它立即返回值。在 Web 上,值需要被挂起;它将在几个 next_frame 后返回。

剪贴板

Miniquad 的剪贴板在 Web 上并不特别工作。因此,这个使用 waiter API 来公开 Web 的实验性异步剪贴板 API。

存储

保存文件非常重要!此 crate 提供了一个 API 来保存您所有重要的游戏数据。在桌面上,此存储在您的 数据目录 中,因此 Windows 上是 %APPDATA%,Mac 上是 Library/Application Support 等。在 Web 上,它存储在 本地存储 中。

两者都支持存储字符串和字节数组。在两个平台上,数据在存储之前都会被压缩;在 Web 上,数据会被 base64 编码(因为本地存储只支持字符串)。

此工具还公开了压缩和解压缩函数。

转换 JS 对象和 Rust 对象

该软件包具有 ToJsObjectFromJsObject 特性,正如您所预期的那样,可以让您更流畅地在 JS 和 Rust 之间转换事物。它们仅在 WASM 上可用(因为您在桌面电脑上做什么呢?)。

它为许多流行类型实现了这些功能,您也可以自己实现。

最后,在软件包功能 serde_wrapper 上有一个 SerDeWrapper 结构,它可以将 Rust 对象转换为 JSON 字符串,反之亦然。

对象工具

sapp_jsutils 是为 JsObjects 工作的库存库,虽然它非常不错,但也有一些显著的缺点。该软件包为 JsObjects 提供了一个扩展特性 ObjectTools。它添加了更多实用工具,如直接将事物转换为字符串、布尔支持等。

依赖关系

~0.6–1.3MB
~22K SLoC