.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
.. DO NOT EDIT THIS FILE, but the doc/base/classes.xml source instead.

.. _class_InputEvent:

InputEvent
==========

**Category:** Built-In Types

Brief Description
-----------------

Built-in input event data.

Member Functions
----------------

+--------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>`  | :ref:`is_action<class_InputEvent_is_action>`  **(** :ref:`String<class_string>` action  **)**                                          |
+--------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>`  | :ref:`is_action_pressed<class_InputEvent_is_action_pressed>`  **(** :ref:`String<class_string>` action  **)**                          |
+--------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>`  | :ref:`is_action_released<class_InputEvent_is_action_released>`  **(** :ref:`String<class_string>` action  **)**                        |
+--------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>`  | :ref:`is_echo<class_InputEvent_is_echo>`  **(** **)**                                                                                  |
+--------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>`  | :ref:`is_pressed<class_InputEvent_is_pressed>`  **(** **)**                                                                            |
+--------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| void                     | :ref:`set_as_action<class_InputEvent_set_as_action>`  **(** :ref:`String<class_string>` action, :ref:`bool<class_bool>` pressed  **)** |
+--------------------------+----------------------------------------------------------------------------------------------------------------------------------------+

Member Variables
----------------

- :ref:`int<class_int>` **ID** - Event identifier, positive integer increased at each new event.
- :ref:`int<class_int>` **device** - Device identifier.
- :ref:`int<class_int>` **type** - Type of event (one of the [InputEvent] constants).

Numeric Constants
-----------------

- **NONE** = **0** --- Empty input event.
- **KEY** = **1** --- Key event.
- **MOUSE_MOTION** = **2** --- Mouse motion event.
- **MOUSE_BUTTON** = **3** --- Mouse button event.
- **JOYSTICK_MOTION** = **4** --- Joystick motion event.
- **JOYSTICK_BUTTON** = **5** --- Joystick button event.
- **SCREEN_TOUCH** = **6** --- Screen touch event.
- **SCREEN_DRAG** = **7** --- Screen drag event.
- **ACTION** = **8** --- Pre-defined action event (see :ref:`InputMap<class_inputmap>`).

Description
-----------

Built-in input event data. InputEvent is a built-in engine datatype, given that it's passed around and used so much. Depending on its type, the members contained can be different, so read the documentation well! Input events can also represent actions (editable from the project settings).

Member Function Description
---------------------------

.. _class_InputEvent_is_action:

- :ref:`bool<class_bool>`  **is_action**  **(** :ref:`String<class_string>` action  **)**

Return if this input event matches a pre-defined action, no matter the type.

.. _class_InputEvent_is_action_pressed:

- :ref:`bool<class_bool>`  **is_action_pressed**  **(** :ref:`String<class_string>` action  **)**

Return whether the given action is being pressed (and is not an echo event for KEY events). Not relevant for the event types MOUSE_MOTION, SCREEN_DRAG and NONE.

.. _class_InputEvent_is_action_released:

- :ref:`bool<class_bool>`  **is_action_released**  **(** :ref:`String<class_string>` action  **)**

Return whether the given action is released (i.e. not pressed). Not relevant for the event types MOUSE_MOTION, SCREEN_DRAG and NONE.

.. _class_InputEvent_is_echo:

- :ref:`bool<class_bool>`  **is_echo**  **(** **)**

Return if this input event is an echo event (only for events of type KEY, it will return false for other types).

.. _class_InputEvent_is_pressed:

- :ref:`bool<class_bool>`  **is_pressed**  **(** **)**

Return if this input event is pressed. Not relevant for the event types MOUSE_MOTION, SCREEN_DRAG and NONE.

.. _class_InputEvent_set_as_action:

- void  **set_as_action**  **(** :ref:`String<class_string>` action, :ref:`bool<class_bool>` pressed  **)**

Change the input event to an action event of the given name, regardless of its initial type, with the pressed status passed as argument.


