6 个稳定版本

1.0.5 2020年12月22日
1.0.4 2020年12月3日
1.0.3 2020年11月26日
1.0.2 2020年11月23日
1.0.1 2020年11月21日

#464硬件支持

MIT 许可证

265KB
2.5K SLoC

库林吉输入映射

bevy 输入映射插件

(注意 * 之前称为 bevy_prototype_input_map)

kurinji

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

用法

添加到 Cargo.toml 依赖项

[dependencies]
kurinji = "*"
fn main() {
    App::build()
        .add_plugin(KurinjiPlugin::default())
        .add_startup_system(setup.system())
        .add_system(system.system())
        .run();
}

fn setup(
    mut kurinji: ResMut<Kurinji>,
) {
    // with data 
    // refer "example/config/gamepad.ron"
    let binding_ron = fs::read_to_string("example/config/gamepad.ron").unwrap()
    kurinji.set_bindings_with_ron(&binding_ron);

    // or

    // via code
    kurinji
    .bind_keyboard_pressed(KeyCode::Return, "SHOOT")
    .bind_mouse_motion(Axis::YNegative, "AIM_UP")
    .set_dead_zone("AIM_UP", 0.1)
}

// system
fn system(kurinji: Res<Kurinji>) {
    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://crates.io/crates/kurinji 获取crate

错误报告

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

发布说明

v1.0.5 (22 dec, 2020)

  • 升级到 Bevy 0.4.0
    • 作者:@Nolan Darilek
  • fixed* 修复了 clippy 警告

v1.0.4 (3 dec, 2020)

  • fixed* 未检测到手柄轴输入

v1.0.3 (26 Nov, 2020)

  • fixed* 事件行为不符合预期 #36

v1.0.0/1/2 (21 Nov, 2020)

  • rebranded* 作为 Kurinji

v0.1.5 (18 Nov, 2020)

  • 手柄支持
  • 改进了文档

v0.1.4 (03 Oct, 2020)

  • 事件阶段
  • 动作事件

v0.1.3 (18 Sept, 2020)

  • 绑定堆栈
  • JSON & RON 支持

v0.1.2 (14 Sept, 2020)

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

v0.1.1 (7 Sept, 2020)

  • minor* 修改了 Readme
    • 必须升级版本以发布一些 Readme 修改

版本 0.1.0 (2020年9月7日)

  • 键盘按键映射
    • 现在可以将按键绑定到动作
  • 鼠标按钮映射
    • 现在可以将鼠标按钮点击绑定到动作
  • 鼠标移动映射
    • 现在可以将鼠标移动事件映射到动作
  • 动作强度
    • 现在可以查询动作的强度。
    • 范围在 0.0 - 1.0 之间
    • 对于像游戏手柄这样的模拟输入很有用
  • 动作死区
    • 对于模拟输入,有时设置一个最小阈值是有意义的,以避免小的输入噪声并降低灵敏度

作者

Pradeep Kumar Rajamanickam

致谢

灵感来源于

依赖项

约 15–24MB
约 376K SLoC