#input #bevy #keyboard-input #axis #button #mouse #marker

ezinput

一个强大的输入无关库,旨在为Bevy游戏引擎提供轴和按钮处理的全面支持

15个版本

0.3.6 2022年6月8日
0.3.5 2022年6月5日
0.2.4 2022年5月9日
0.2.3 2022年3月10日
0.1.2 2022年1月23日

#1993游戏开发

Download history 12/week @ 2024-03-09 14/week @ 2024-03-16 18/week @ 2024-03-30 6/week @ 2024-04-06

每月60 次下载

MIT 许可证

53KB
1K SLoC

ezinput

GitHub crates.io GitHub Actions GitHub Actions
一个强大的输入无关库,旨在为Bevy游戏引擎提供轴和按钮处理的全面支持。

目录

  1. 关于
  2. 分支
  3. 入门
  4. 示例

关于

输入是相对的;库本身当前默认实现键盘、鼠标和游戏手柄支持,但这一点可能会改变。请随时通过提交拉取请求来为库做出贡献。触摸支持仍在计划中,但尚未实现。

ezinput致力于尽可能简单,同时仍然强大且灵活,不使用任何不安全代码。

所有绑定都存储在InputView结构体中,该结构体作为组件传递给您的ECS实体。为了允许处理输入方法,您需要向ECS实体添加一个服务标记组件(MouseMarkerKeyboardMarkerGamepadMarker)。您不必限于一个标记,因为您可以使用多个标记来处理多种输入方法。这种实现的一个优点是输入视图不受特定输入源的限制,因此您只需向绑定添加新的输入接收器即可重复使用相同的视图来处理多种输入方法。

并非所有内容都已记录或以高度详细的方式记录,因此任何反馈都将受到欢迎。您可以在Discord或在这里在GitHub上联系我!

局限性

  • 触摸支持尚未实现。
  • 输入接收器仅限于已实现的输入源。
  • 输入源是硬编码的枚举(尽管在大多数情况下可能不会那么糟糕)。

分支

分支 Bevy版本
master ^0.7
bevy_main git (https://github.com/bevyengine/bevy.git)

入门

将以下内容添加到您的Cargo.toml中(将^0.3替换为最新版本)

[dependencies]
ezinput = "^0.3"
  • 使用 ezinput::预览::*;
  • 通过使用input!宏创建输入视图。您可以在这里看到一个示例。https://github.com/eexsty/ezinput/blob/master/src/macros.rs#L5-L45
  • 将 ezinput 插件添加到您的应用程序中 app.add_plugin(EZInputPlugin::<TheNameOfYourBindingsEnum>::default());
  • 将输入视图组件与标记一起添加到您的 ECS 实体中。
  • 完成!您可以通过使用 InputView 组件来处理输入!我建议您查看示例,以了解如何使用它。

依赖项

~43–59MB
~865K SLoC