pub struct ActionMap { /* private fields */ }Expand description
动作映射表
将字符串命名的逻辑动作映射到一组输入绑定。 任一绑定激活即视为动作激活。
§示例
use anvilkit_input::prelude::*;
use anvilkit_input::action_map::InputBinding;
let mut map = ActionMap::new();
map.add_binding("jump", InputBinding::Key(KeyCode::Space));
map.add_binding("jump", InputBinding::Key(KeyCode::W));
let mut input = InputState::new();
input.press_key(KeyCode::Space);
map.update(&input);
assert!(map.is_action_active("jump"));
assert!(map.is_action_just_pressed("jump"));Implementations§
Source§impl ActionMap
impl ActionMap
Sourcepub fn add_binding(&mut self, action: &str, binding: InputBinding)
pub fn add_binding(&mut self, action: &str, binding: InputBinding)
为动作添加输入绑定
Sourcepub fn update(&mut self, input: &InputState)
pub fn update(&mut self, input: &InputState)
根据当前输入状态更新所有动作状态
Sourcepub fn action_state(&self, action: &str) -> ActionState
pub fn action_state(&self, action: &str) -> ActionState
查询动作状态
Sourcepub fn is_action_active(&self, action: &str) -> bool
pub fn is_action_active(&self, action: &str) -> bool
动作是否激活
Sourcepub fn is_action_just_pressed(&self, action: &str) -> bool
pub fn is_action_just_pressed(&self, action: &str) -> bool
动作是否本帧刚触发
Sourcepub fn is_action_just_released(&self, action: &str) -> bool
pub fn is_action_just_released(&self, action: &str) -> bool
动作是否本帧刚结束
Sourcepub fn get_bindings(&self, action: &str) -> Option<&[InputBinding]>
pub fn get_bindings(&self, action: &str) -> Option<&[InputBinding]>
获取动作的所有绑定
Sourcepub fn clear_bindings(&mut self, action: &str)
pub fn clear_bindings(&mut self, action: &str)
移除动作的所有绑定
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ActionMap
impl RefUnwindSafe for ActionMap
impl Send for ActionMap
impl Sync for ActionMap
impl Unpin for ActionMap
impl UnsafeUnpin for ActionMap
impl UnwindSafe for ActionMap
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
Mutably borrows from an owned value. Read more
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates
Self using data from the given World.