#web #orientation #bevy #locking #screen #micro #selector

micro_bevy_web_utils

为修复Bevy Web/触摸支持中的各种缺失部分的工具

4个版本 (破坏性更新)

0.4.0 2024年2月25日
0.3.0 2023年7月22日
0.2.0 2023年3月8日
0.1.0 2022年12月22日

#739 in 游戏开发

Apache-2.0

9KB
167

Bevy Web Utils

在Web上使用Bevy的辅助工具

绑定

此crate包含对一些JS片段的wasm_bindgen绑定,这些片段有助于执行各种Web任务,可以通过micro_bevy_web_utils::bindings模块访问

  • orientation_lock(orientation: String);:锁定屏幕到指定的方向。接受在屏幕方向API中定义的值。在不支持锁定方向的Web平台上为Noop
  • orientation_unlock();:解锁屏幕方向。当方向未锁定或在不支持锁定方向的Web平台上时为Noop
  • make_selector_fullscreen(selector: String);:接收一个查询选择器,并请求第一个匹配元素的全屏模式。如果查询选择器不匹配任何元素,则为Noop。调用make_selector_fullscreen("canvas")是常见用法
  • toggle_selector_fullscreen(selector: String) -> bool;:接收一个查询选择器,如果窗口不在全屏,则请求全屏模式;如果窗口已全屏,则关闭全屏模式
  • exit_fullscreen();:关闭全屏模式
  • bind_selector_touch_events(selector: String);: 将触摸事件绑定到元素上。这通常与 micro_bevy_web_utils::bevy::emit_touch_events 系统结合使用,在触摸设备上发送触摸事件
  • teardown_selector_touch_events(selector: String);: 删除指定元素的触摸事件绑定
  • take_touch_events() -> String;: 清除触摸事件缓冲区,并返回一个序列化的 JSON 数组,包含自上次调用 take_touch_events 以来记录的所有事件
  • is_fullscreen() -> bool;: 返回一个元素是否启用了全屏模式
  • is_touch_device() -> bool;: 返回设备是否支持触摸输入

Bevy 系统

在成功调用 bind_selector_touch_events 至少一次之后,才会拦截触摸事件

要分发此库记录的触摸事件,您可以添加 micro_bevy_web_utils::bevy::emit_touch_events 系统。然后,您将在使用 TouchesEventReader<TouchInput> 资源的任何其他系统中接收截获的触摸事件。

或者,您可以使用 take_touch_events 绑定手动获取所有记录的触摸事件。它们 必须 在获取后进行处理和/或分发,否则将丢失 - 没有双缓冲或类似机制

依赖关系

~17MB
~340K SLoC