7 个版本

0.1.6 2020年11月21日
0.1.5 2020年11月18日
0.1.4 2020年10月3日
0.1.3 2020年9月18日

#10 in #mouse-button

每月下载 27 次

MIT 许可证

84KB
2K SLoC

Bevy 输入映射

**注意** bevy_prototype_input_map 现在已更名为 Kurinji。此crate已废弃,请使用 Kurinji

Kurinji v1.0.1 现已在 crate.io 上提供 https://crates.io/crates/kurinji

** - 已废弃 - **

将游戏代码与特定设备的输入API解耦。将用户从不同输入硬件的输入转换为游戏特定动作,例如 键盘 "空格" 或手柄 "A" 可映射为 "跳跃" 动作

用法

添加到 Cargo.toml 依赖项

[dependencies]
bevy_prototype_input_map = "0.1"

在代码中

fn main() {
    App::build()
        .add_plugin(InputMapPlugin::default())
        .add_startup_system(setup.system())
        .add_system(system.system())
        .run();
}

fn setup(
    mut input_map: ResMut<InputMap>,
) {
    input_map
    .bind_keyboard_pressed(KeyCode::Return, "SHOOT")
    .bind_mouse_motion(Axis::YNegative, "AIM_UP")
    .set_dead_zone("AIM_UP", 0.1)
}

// system
fn system(input_map: Res<InputMap>) {
    if input_map.is_action_active("SHOOT") {
        println!("Bang...");
    }

*查看 示例

示例

使用命令

通过代码

cargo run --example keyboard_mouse_with_code

cargo run --example gamepad_with_code

通过 JSON/RON

cargo run --example keyboard_mouse_with_json

cargo run --example gamepad_with_ron

对于动作事件使用

cargo run --example with_action_events

功能

  • 新功能* 操纵杆支持:按钮和模拟输入
  • 事件阶段:能够设置动作何时处于活动状态
  • 动作事件:OnActionBegin,OnActionProgress,OnActionEnd
  • 绑定堆栈:能够推入、添加推入和弹出绑定
  • JSON/RON 支持:能够使用序列化字符串来设置绑定
  • 支持设置自定义强度曲线函数
  • 键盘键映射
  • 鼠标按钮映射
  • 鼠标移动映射
  • 动作强度
  • 动作死区

仓库

https://github.com/PradeepKumarRajamanickam/bevy_input_map/

**注意** master分支上的最新提交可能不稳定。如果您正在寻找稳定的提交,请使用版本标签,或者从 crate.io 获取crate。

错误报告

https://github.com/PradeepKumarRajamanickam/bevy_input_map/issues

发行说明

v0.1.5 (2020年11月18日)

  • 操纵杆支持
  • 改进了文档

v0.1.4 (2020年10月3日)

  • 事件阶段
  • 动作事件

v0.1.3 (2020年9月18日)

  • 绑定堆栈
  • JSON & RON 支持

v0.1.2 (2020年9月14日)

  • 新API
  • 能够设置自定义强度曲线

v0.1.1 (2020年9月7日)

  • 小改* 读取说明更改
    • 必须提升版本以发布一些说明更改

v0.1.0 (2020年9月7日)

  • 键盘键映射
    • 按键现在可以绑定到动作
  • 鼠标按钮映射
    • 鼠标按钮按下现在可以绑定到动作
  • 鼠标移动映射
    • 鼠标移动事件现在可以映射到动作
  • 动作强度
    • 现在可以查询动作的强度。
    • 范围将在0.0 - 1.0之间
    • 对于模拟输入(如摇杆)非常有用
  • 动作死区
    • 对于模拟输入,有时设置一个最小阈值是有意义的,以避免小输入噪声并降低灵敏度

作者

Pradeep Kumar Rajamanickam

致谢

灵感来源于

依赖关系

~31–74MB
~719K SLoC