7 个版本
0.1.6 | 2023 年 9 月 19 日 |
---|---|
0.1.5 | 2023 年 9 月 19 日 |
#610 在 游戏开发
每月 43 次下载
42KB
564 行
gamepads
Rust 游戏手柄输入库,注重易用性。
use gamepads::Gamepads;
fn main() {
let mut gamepads = Gamepads::new();
loop {
gamepads.poll();
for gamepad in gamepads.all() {
println!("Gamepad id: {:?}", gamepad.id());
for button in gamepad.all_currently_pressed() {
println!("Pressed button: {:?}", button);
}
println!("Left thumbstick: {:?}", gamepad.left_stick());
println!("Right thumbstick: {:?}", gamepad.right_stick());
}
std::thread::sleep(std::time::Duration::from_millis(500));
}
}
这是什么
- 在桌面端,此库在gilrs之上实现。
- 在网页上,这是在浏览器暴露的游戏手柄API之上实现的,包括对触觉反馈(即“双重振动”或“力反馈”)的支持。
- 它可以在使用
wasm-bindgen
的项目中无需任何设置即可使用。 - 它可以不使用
wasm-bindgen
(通过指定default-features = false
)使用,允许它作为macroquad
插件使用(见下文)或直接构建wasm(示例)。
- 它可以在使用
如何作为 macroquad 插件使用
对于非网页目标,使用macroquad无需特殊处理即可使用此库。但为了正确构建网页版本,需要进行两项操作。
首先,由于macroquad
不使用wasm-bindgen
,因此需要通过设置default-features = false
关闭gamepads
中的该功能
gamepads = { version = "*", default-features = false }
其次,需要在包含构建的wasm文件的页面中注册一个javascript插件(源)
<script src="https://not-fl3.github.io/miniquad-samples/mq_js_bundle.js"></script>
<script src="https://fornwall.github.io/gamepads/js/macroquad-gamepads-0.1.js"></script>
<script>
load("your-wasm-file.wasm");
</script>
请参阅gamepads-macroquad示例。
反馈
依赖关系
~0.7–3.5MB
~73K SLoC