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 在 硬件支持
265KB
2.5K SLoC
库林吉输入映射
bevy 输入映射插件
(注意 * 之前称为 bevy_prototype_input_map)
将游戏代码与特定设备的输入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