Struct sdl2::keyboard::KeyboardState [−][src]
pub struct KeyboardState<'a> { /* fields omitted */ }Implementations
Returns true if the scancode is pressed.
Example
use sdl2::keyboard::Scancode;
fn is_a_pressed(e: &sdl2::EventPump) -> bool {
e.keyboard_state().is_scancode_pressed(Scancode::A)
}pub fn scancodes(&self) -> ScancodeIterator<'_>ⓘNotable traits for ScancodeIterator<'a>impl<'a> Iterator for ScancodeIterator<'a> type Item = (Scancode, bool);
pub fn scancodes(&self) -> ScancodeIterator<'_>ⓘNotable traits for ScancodeIterator<'a>impl<'a> Iterator for ScancodeIterator<'a> type Item = (Scancode, bool);
Notable traits for ScancodeIterator<'a>
impl<'a> Iterator for ScancodeIterator<'a> type Item = (Scancode, bool);Returns an iterator all scancodes with a boolean indicating if the scancode is pressed.
pub fn pressed_scancodes(&self) -> PressedScancodeIterator<'_>ⓘNotable traits for PressedScancodeIterator<'a>impl<'a> Iterator for PressedScancodeIterator<'a> type Item = Scancode;
pub fn pressed_scancodes(&self) -> PressedScancodeIterator<'_>ⓘNotable traits for PressedScancodeIterator<'a>impl<'a> Iterator for PressedScancodeIterator<'a> type Item = Scancode;
Notable traits for PressedScancodeIterator<'a>
impl<'a> Iterator for PressedScancodeIterator<'a> type Item = Scancode;Returns an iterator of pressed scancodes.
Example
use sdl2::keyboard::Keycode;
use sdl2::keyboard::Scancode;
use std::collections::HashSet;
fn pressed_scancode_set(e: &sdl2::EventPump) -> HashSet<Scancode> {
e.keyboard_state().pressed_scancodes().collect()
}
fn pressed_keycode_set(e: &sdl2::EventPump) -> HashSet<Keycode> {
e.keyboard_state().pressed_scancodes()
.filter_map(Keycode::from_scancode)
.collect()
}
fn newly_pressed(old: &HashSet<Scancode>, new: &HashSet<Scancode>) -> HashSet<Scancode> {
new - old
// sugar for: new.difference(old).collect()
}