Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

InputEvent

繼承: Resource < RefCounted < Object

被繼承: InputEventAction, InputEventFromWindow, InputEventJoypadButton, InputEventJoypadMotion, InputEventMIDI, InputEventShortcut

輸入事件的抽象基底類別。

說明

各種輸入事件的抽象基底類別。見 Node._input()

教學

屬性

int

device

0

方法

bool

accumulate(with_event: InputEvent)

String

as_text() const

float

get_action_strength(action: StringName, exact_match: bool = false) const

bool

is_action(action: StringName, exact_match: bool = false) const

bool

is_action_pressed(action: StringName, allow_echo: bool = false, exact_match: bool = false) const

bool

is_action_released(action: StringName, exact_match: bool = false) const

bool

is_action_type() const

bool

is_canceled() const

bool

is_echo() const

bool

is_match(event: InputEvent, exact_match: bool = true) const

bool

is_pressed() const

bool

is_released() const

InputEvent

xformed_by(xform: Transform2D, local_ofs: Vector2 = Vector2(0, 0)) const


常數

DEVICE_ID_EMULATION = -1 🔗

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.

DEVICE_ID_KEYBOARD = 16 🔗

Device ID used for input from a keyboard. This can be used to distinguish keyboard input events from joypad input events.

DEVICE_ID_MOUSE = 32 🔗

Device ID used for input from a mouse. This can be used to distinguish mouse input events from joypad input events.


屬性說明

int device = 0 🔗

  • void set_device(value: int)

  • int get_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.


方法說明

bool accumulate(with_event: InputEvent) 🔗

如果給定的輸入事件和這個輸入事件可以相加,則返回 true(只針對 InputEventMouseMotion 型別的事件)。

給定輸入事件的位置、全域位置和速度將被複製。產生的 relative 是兩個事件的總和。兩個事件的修飾符必須是相同的。


String as_text() const 🔗

返回事件的 String 字串表示。


float get_action_strength(action: StringName, exact_match: bool = false) const 🔗

根據給定動作的狀態返回 0.0 到 1.0 之間的值。獲取 InputEventJoypadMotion 類型事件的值時很有用。

如果 exact_matchfalse,它會忽略 InputEventKeyInputEventMouseButton 事件的額外輸入修飾鍵,以及 InputEventJoypadMotion 事件的方向。


bool is_action(action: StringName, exact_match: bool = false) const 🔗

如果該輸入事件配對任何型別的預定義動作,則返回 true

如果 exact_matchfalse,它會忽略 InputEventKeyInputEventMouseButton 事件的額外輸入修飾鍵,以及 InputEventJoypadMotion 事件的方向。


bool is_action_pressed(action: StringName, allow_echo: bool = false, exact_match: bool = false) const 🔗

Returns true if the given action matches this event and 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, 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_released(action: StringName, exact_match: bool = false) const 🔗

Returns true if the given action matches this event and 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_type() const 🔗

Returns true if this input event's type is one that can be assigned to an input action: InputEventKey, InputEventMouseButton, InputEventJoypadButton, InputEventJoypadMotion, InputEventAction. Returns false for all other input event types.


bool is_canceled() const 🔗

如果這個輸入事件已被取消,則返回 true


bool is_echo() 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_match(event: InputEvent, exact_match: bool = true) const 🔗

Returns true if the specified event matches this event. Only valid for action events, which include key (InputEventKey), button (InputEventMouseButton or InputEventJoypadButton), axis InputEventJoypadMotion, and action (InputEventAction) events.

If exact_match is false, the check ignores additional input modifiers for InputEventKey and InputEventMouseButton events, and the direction for InputEventJoypadMotion events.

Note: This method only considers the event configuration (such as the keyboard key or the joypad axis), not state information like is_pressed(), is_released(), is_echo(), or is_canceled().


bool is_pressed() const 🔗

如果該輸入事件被按下,則返回 true。與 InputEventMouseMotionInputEventScreenDrag 型別的事件無關。

注意:由於鍵盤重影,即使按下動作的某個鍵,is_pressed() 也有可能會返回 false。有關詳細資訊,請參閱文件中的《輸入範例》


bool is_released() const 🔗

如果該輸入事件是回顯事件,則返回 true。不適用於型別為 InputEventMouseMotionInputEventScreenDrag 的事件。


InputEvent xformed_by(xform: Transform2D, local_ofs: Vector2 = Vector2(0, 0)) const 🔗

返回給定輸入事件的副本,該副本已被 local_ofs 偏移並被 xform 變換。與 InputEventMouseButtonInputEventMouseMotionInputEventScreenTouchInputEventScreenDragInputEventMagnifyGesture、和 InputEventPanGesture 型別的事件相關。