pub struct Input { /* private fields */ }Expand description
Input wraps a current and previous input state. When window
events arrive from winit, you should call
Input::process_input_event(); later (e.g. when handling
winit::event::Event::AboutToWait and simulating a single game
step), you can make queries like Input::is_key_down(), and
when you’ve finished processing events for a frame you can call
Input::next_frame() to cycle the new state to the old state.
Implementations§
Source§impl Input
impl Input
Sourcepub fn process_input_event<T>(&mut self, ev: &Event<T>)
pub fn process_input_event<T>(&mut self, ev: &Event<T>)
Process a winit event and update the current keys/mouse position.
Sourcepub fn is_key_down(&self, kc: Key) -> bool
pub fn is_key_down(&self, kc: Key) -> bool
Is this key currently down?
Sourcepub fn is_key_pressed(&self, kc: Key) -> bool
pub fn is_key_pressed(&self, kc: Key) -> bool
Was this key just pressed on this frame?
Sourcepub fn is_key_released(&self, kc: Key) -> bool
pub fn is_key_released(&self, kc: Key) -> bool
Was this key just released on this frame?
Sourcepub fn is_mouse_down(&self, button: MouseButton) -> bool
pub fn is_mouse_down(&self, button: MouseButton) -> bool
Is this mouse button currently held?
Sourcepub fn is_mouse_up(&self, mb: MouseButton) -> bool
pub fn is_mouse_up(&self, mb: MouseButton) -> bool
Is this mouse button currently up?
Sourcepub fn is_mouse_pressed(&self, mb: MouseButton) -> bool
pub fn is_mouse_pressed(&self, mb: MouseButton) -> bool
Was this mouse button just pressed this frame?
Sourcepub fn is_mouse_released(&self, mb: MouseButton) -> bool
pub fn is_mouse_released(&self, mb: MouseButton) -> bool
Was this mouse button just released this frame?
Sourcepub fn mouse_delta(&self) -> MousePos<f64>
pub fn mouse_delta(&self) -> MousePos<f64>
How much has the mouse moved this frame?
Sourcepub fn key_axis(&self, down: Key, up: Key) -> f32
pub fn key_axis(&self, down: Key, up: Key) -> f32
Given two keys (a negative and positive direction), produce a value between -1 and 1 based on which are currently held.
Sourcepub fn next_frame(&mut self)
pub fn next_frame(&mut self)
Cycle current state to previous state.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Input
impl RefUnwindSafe for Input
impl Send for Input
impl Sync for Input
impl Unpin for Input
impl UnwindSafe for Input
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.