Class InputEvent
Abstract base class for input events.
- Inheritance
-
InputEvent
- Derived
Remarks
Abstract base class of all types of input events. See Node._input.
See Also
Fields
DEVICE_ID_EMULATION
Device ID used for emulated mouse input from a touchscreen, or for emulated touch input from a mouse. This can be used to distinguish emulated mouse input from physical mouse input, or emulated touch input from physical touch input.
const DEVICE_ID_EMULATION = -1
Properties
device
The event's device ID.
Note: device can be negative for special use cases that don't refer to devices physically present on the system. See DEVICE_ID_EMULATION.
var device : int = 0
Property Value
Remarks
Methods
accumulate(InputEvent)
Returns true
if the given input event and this input event can be added together (only for events of type InputEventMouseMotion).
The given input event's position, global position and speed will be copied. The resulting relative
is a sum of both events. Both events' modifiers have to be identical.
bool accumulate(InputEvent with_event)
Parameters
with_event
InputEvent
as_text
Qualifiers: const
Returns a String representation of the event.
String as_text
get_action_strength(StringName, bool)
Qualifiers: const
Returns a value between 0.0 and 1.0 depending on the given actions' state. Useful for getting the value of events of type InputEventJoypadMotion.
If exact_match
is false
, it ignores additional input modifiers for InputEventKey and InputEventMouseButton events, and the direction for InputEventJoypadMotion events.
float get_action_strength(StringName action, bool exact_match)
Parameters
action
StringNameexact_match
bool
is_action(StringName, bool)
Qualifiers: const
Returns true
if this input event matches a pre-defined action of any type.
If exact_match
is false
, it ignores additional input modifiers for InputEventKey and InputEventMouseButton events, and the direction for InputEventJoypadMotion events.
bool is_action(StringName action, bool exact_match)
Parameters
action
StringNameexact_match
bool
is_action_pressed(StringName, bool, bool)
Qualifiers: const
Returns true
if the given action is being pressed (and is not an echo event for InputEventKey events, unless allow_echo
is true
). Not relevant for events of type InputEventMouseMotion or InputEventScreenDrag.
If exact_match
is false
, it ignores additional input modifiers for InputEventKey and InputEventMouseButton events, and the direction for InputEventJoypadMotion events.
Note: Due to keyboard ghosting, InputEvent.is_action_pressed may return false
even if one of the action's keys is pressed. See Input examples in the documentation for more information.
bool is_action_pressed(StringName action, bool allow_echo, bool exact_match)
Parameters
action
StringNameallow_echo
boolexact_match
bool
is_action_released(StringName, bool)
Qualifiers: const
Returns true
if the given action is released (i.e. not pressed). Not relevant for events of type InputEventMouseMotion or InputEventScreenDrag.
If exact_match
is false
, it ignores additional input modifiers for InputEventKey and InputEventMouseButton events, and the direction for InputEventJoypadMotion events.
bool is_action_released(StringName action, bool exact_match)
Parameters
action
StringNameexact_match
bool
is_action_type
Qualifiers: const
Returns true
if this input event's type is one that can be assigned to an input action.
bool is_action_type
is_canceled
Qualifiers: const
Returns true
if this input event has been canceled.
bool is_canceled
is_echo
Qualifiers: const
Returns true
if this input event is an echo event (only for events of type InputEventKey). An echo event is a repeated key event sent when the user is holding down the key. Any other event type returns false
.
Note: The rate at which echo events are sent is typically around 20 events per second (after holding down the key for roughly half a second). However, the key repeat delay/speed can be changed by the user or disabled entirely in the operating system settings. To ensure your project works correctly on all configurations, do not assume the user has a specific key repeat configuration in your project's behavior.
bool is_echo
is_match(InputEvent, bool)
Qualifiers: const
Returns true
if the specified event
matches this event. Only valid for action events i.e key (InputEventKey), button (InputEventMouseButton or InputEventJoypadButton), axis InputEventJoypadMotion or action (InputEventAction) events.
If exact_match
is false
, it ignores additional input modifiers for InputEventKey and InputEventMouseButton events, and the direction for InputEventJoypadMotion events.
Note: Only considers the event configuration (such as the keyboard key or joypad axis), not state information like is_pressed, is_released, is_echo, or is_canceled.
bool is_match(InputEvent event, bool exact_match)
Parameters
event
InputEventexact_match
bool
is_pressed
Qualifiers: const
Returns true
if this input event is pressed. Not relevant for events of type InputEventMouseMotion or InputEventScreenDrag.
Note: Due to keyboard ghosting, is_pressed may return false
even if one of the action's keys is pressed. See Input examples in the documentation for more information.
bool is_pressed
is_released
Qualifiers: const
Returns true
if this input event is released. Not relevant for events of type InputEventMouseMotion or InputEventScreenDrag.
bool is_released
xformed_by(Transform2D, Vector2)
Qualifiers: const
Returns a copy of the given input event which has been offset by local_ofs
and transformed by xform
. Relevant for events of type InputEventMouseButton, InputEventMouseMotion, InputEventScreenTouch, InputEventScreenDrag, InputEventMagnifyGesture and InputEventPanGesture.
InputEvent xformed_by(Transform2D xform, Vector2 local_ofs)
Parameters
xform
Transform2Dlocal_ofs
Vector2