7 个版本

0.1.6 2023 年 9 月 19 日
0.1.5 2023 年 9 月 19 日

#610游戏开发

每月 43 次下载

MIT/Apache

42KB
564

CI Docs Crates.io version

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));
   }
}

请参阅crate 文档示例以获取文档和示例代码。

这是什么

  • 在桌面端,此库在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