Crates.io | gamepads |
lib.rs | gamepads |
version | 0.1.6 |
source | src |
created_at | 2023-09-15 22:47:23.553244 |
updated_at | 2023-09-19 12:11:41.708355 |
description | Library to access information about connected gamepads. |
homepage | |
repository | https://github.com/fornwall/gamepads |
max_upload_size | |
id | 973991 |
size | 57,708 |
Rust gamepad input library with a focus on ease of use.
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));
}
}
See the crate documentation and the examples for documentation and sample code.
wasm-bindgen
-using project without any setup necessary.wasm-bindgen
(by specifying default-features = false
), allowing it to be used as a macroquad
plugin (see more below) or in a direct wasm build (example).For non-web targets, nothing special needs to be done to use this library with macroquad. But for a web build to work properly, two things needs to be done.
First, since macroquad
does not use wasm-bindgen
, that feature in gamepads
needs to be turned off by setting default-features = false
:
gamepads = { version = "*", default-features = false }
Second, a javascript plug-in (source) needs to be registered in the page embedding the built wasm file:
<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>
See the gamepads-macroquad example.
Please report any issues found or discuss questions and ideas!