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 次
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