6 个版本
0.3.0 | 2021 年 12 月 18 日 |
---|---|
0.2.1 | 2021 年 6 月 2 日 |
0.1.2 | 2021 年 6 月 1 日 |
#633 在 WebAssembly
每月 72 次下载
48KB
853 行
quad-wasmnastics
用于使高级 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 对象
该软件包具有 ToJsObject
和 FromJsObject
特性,正如您所预期的那样,可以让您更流畅地在 JS 和 Rust 之间转换事物。它们仅在 WASM 上可用(因为您在桌面电脑上做什么呢?)。
它为许多流行类型实现了这些功能,您也可以自己实现。
最后,在软件包功能 serde_wrapper
上有一个 SerDeWrapper
结构,它可以将 Rust 对象转换为 JSON 字符串,反之亦然。
对象工具
sapp_jsutils
是为 JsObjects 工作的库存库,虽然它非常不错,但也有一些显著的缺点。该软件包为 JsObjects 提供了一个扩展特性 ObjectTools
。它添加了更多实用工具,如直接将事物转换为字符串、布尔支持等。
依赖关系
~0.6–1.3MB
~22K SLoC