class_inputeventmousemotion.rst 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/InputEventMouseMotion.xml.
  6. .. _class_InputEventMouseMotion:
  7. InputEventMouseMotion
  8. =====================
  9. **Inherits:** :ref:`InputEventMouse<class_InputEventMouse>` **<** :ref:`InputEventWithModifiers<class_InputEventWithModifiers>` **<** :ref:`InputEventFromWindow<class_InputEventFromWindow>` **<** :ref:`InputEvent<class_InputEvent>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
  10. Represents a mouse or a pen movement.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. Stores information about a mouse or a pen motion. This includes relative position, absolute position, and velocity. See :ref:`Node._input<class_Node_private_method__input>`.
  15. \ **Note:** By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, set :ref:`Input.use_accumulated_input<class_Input_property_use_accumulated_input>` to ``false`` to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider using :ref:`Geometry2D.bresenham_line<class_Geometry2D_method_bresenham_line>` as well to avoid visible gaps in lines if the user is moving the mouse quickly.
  16. \ **Note:** This event may be emitted even when the mouse hasn't moved, either by the operating system or by Godot itself. If you really need to know if the mouse has moved (e.g. to suppress displaying a tooltip), you should check that ``relative.is_zero_approx()`` is ``false``.
  17. .. rst-class:: classref-introduction-group
  18. Tutorials
  19. ---------
  20. - :doc:`Using InputEvent <../tutorials/inputs/inputevent>`
  21. - :doc:`Mouse and input coordinates <../tutorials/inputs/mouse_and_input_coordinates>`
  22. - `3D Voxel Demo <https://godotengine.org/asset-library/asset/2755>`__
  23. .. rst-class:: classref-reftable-group
  24. Properties
  25. ----------
  26. .. table::
  27. :widths: auto
  28. +-------------------------------+------------------------------------------------------------------------------+-------------------+
  29. | :ref:`bool<class_bool>` | :ref:`pen_inverted<class_InputEventMouseMotion_property_pen_inverted>` | ``false`` |
  30. +-------------------------------+------------------------------------------------------------------------------+-------------------+
  31. | :ref:`float<class_float>` | :ref:`pressure<class_InputEventMouseMotion_property_pressure>` | ``0.0`` |
  32. +-------------------------------+------------------------------------------------------------------------------+-------------------+
  33. | :ref:`Vector2<class_Vector2>` | :ref:`relative<class_InputEventMouseMotion_property_relative>` | ``Vector2(0, 0)`` |
  34. +-------------------------------+------------------------------------------------------------------------------+-------------------+
  35. | :ref:`Vector2<class_Vector2>` | :ref:`screen_relative<class_InputEventMouseMotion_property_screen_relative>` | ``Vector2(0, 0)`` |
  36. +-------------------------------+------------------------------------------------------------------------------+-------------------+
  37. | :ref:`Vector2<class_Vector2>` | :ref:`screen_velocity<class_InputEventMouseMotion_property_screen_velocity>` | ``Vector2(0, 0)`` |
  38. +-------------------------------+------------------------------------------------------------------------------+-------------------+
  39. | :ref:`Vector2<class_Vector2>` | :ref:`tilt<class_InputEventMouseMotion_property_tilt>` | ``Vector2(0, 0)`` |
  40. +-------------------------------+------------------------------------------------------------------------------+-------------------+
  41. | :ref:`Vector2<class_Vector2>` | :ref:`velocity<class_InputEventMouseMotion_property_velocity>` | ``Vector2(0, 0)`` |
  42. +-------------------------------+------------------------------------------------------------------------------+-------------------+
  43. .. rst-class:: classref-section-separator
  44. ----
  45. .. rst-class:: classref-descriptions-group
  46. Property Descriptions
  47. ---------------------
  48. .. _class_InputEventMouseMotion_property_pen_inverted:
  49. .. rst-class:: classref-property
  50. :ref:`bool<class_bool>` **pen_inverted** = ``false`` :ref:`🔗<class_InputEventMouseMotion_property_pen_inverted>`
  51. .. rst-class:: classref-property-setget
  52. - |void| **set_pen_inverted**\ (\ value\: :ref:`bool<class_bool>`\ )
  53. - :ref:`bool<class_bool>` **get_pen_inverted**\ (\ )
  54. Returns ``true`` when using the eraser end of a stylus pen.
  55. \ **Note:** This property is implemented on Linux, macOS and Windows.
  56. .. rst-class:: classref-item-separator
  57. ----
  58. .. _class_InputEventMouseMotion_property_pressure:
  59. .. rst-class:: classref-property
  60. :ref:`float<class_float>` **pressure** = ``0.0`` :ref:`🔗<class_InputEventMouseMotion_property_pressure>`
  61. .. rst-class:: classref-property-setget
  62. - |void| **set_pressure**\ (\ value\: :ref:`float<class_float>`\ )
  63. - :ref:`float<class_float>` **get_pressure**\ (\ )
  64. Represents the pressure the user puts on the pen. Ranges from ``0.0`` to ``1.0``.
  65. .. rst-class:: classref-item-separator
  66. ----
  67. .. _class_InputEventMouseMotion_property_relative:
  68. .. rst-class:: classref-property
  69. :ref:`Vector2<class_Vector2>` **relative** = ``Vector2(0, 0)`` :ref:`🔗<class_InputEventMouseMotion_property_relative>`
  70. .. rst-class:: classref-property-setget
  71. - |void| **set_relative**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
  72. - :ref:`Vector2<class_Vector2>` **get_relative**\ (\ )
  73. The mouse position relative to the previous position (position at the last frame).
  74. \ **Note:** Since **InputEventMouseMotion** may only be emitted when the mouse moves, it is not possible to reliably detect when the mouse has stopped moving by checking this property. A separate, short timer may be necessary.
  75. \ **Note:** :ref:`relative<class_InputEventMouseMotion_property_relative>` is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means mouse sensitivity will appear different depending on resolution when using :ref:`relative<class_InputEventMouseMotion_property_relative>` in a script that handles mouse aiming with the :ref:`Input.MOUSE_MODE_CAPTURED<class_Input_constant_MOUSE_MODE_CAPTURED>` mouse mode. To avoid this, use :ref:`screen_relative<class_InputEventMouseMotion_property_screen_relative>` instead.
  76. .. rst-class:: classref-item-separator
  77. ----
  78. .. _class_InputEventMouseMotion_property_screen_relative:
  79. .. rst-class:: classref-property
  80. :ref:`Vector2<class_Vector2>` **screen_relative** = ``Vector2(0, 0)`` :ref:`🔗<class_InputEventMouseMotion_property_screen_relative>`
  81. .. rst-class:: classref-property-setget
  82. - |void| **set_screen_relative**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
  83. - :ref:`Vector2<class_Vector2>` **get_screen_relative**\ (\ )
  84. The unscaled mouse position relative to the previous position in the coordinate system of the screen (position at the last frame).
  85. \ **Note:** Since **InputEventMouseMotion** may only be emitted when the mouse moves, it is not possible to reliably detect when the mouse has stopped moving by checking this property. A separate, short timer may be necessary.
  86. \ **Note:** This coordinate is *not* scaled according to the content scale factor or calls to :ref:`InputEvent.xformed_by<class_InputEvent_method_xformed_by>`. This should be preferred over :ref:`relative<class_InputEventMouseMotion_property_relative>` for mouse aiming when using the :ref:`Input.MOUSE_MODE_CAPTURED<class_Input_constant_MOUSE_MODE_CAPTURED>` mouse mode, regardless of the project's stretch mode.
  87. .. rst-class:: classref-item-separator
  88. ----
  89. .. _class_InputEventMouseMotion_property_screen_velocity:
  90. .. rst-class:: classref-property
  91. :ref:`Vector2<class_Vector2>` **screen_velocity** = ``Vector2(0, 0)`` :ref:`🔗<class_InputEventMouseMotion_property_screen_velocity>`
  92. .. rst-class:: classref-property-setget
  93. - |void| **set_screen_velocity**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
  94. - :ref:`Vector2<class_Vector2>` **get_screen_velocity**\ (\ )
  95. The unscaled mouse velocity in pixels per second in screen coordinates. This velocity is *not* scaled according to the content scale factor or calls to :ref:`InputEvent.xformed_by<class_InputEvent_method_xformed_by>`. This should be preferred over :ref:`velocity<class_InputEventMouseMotion_property_velocity>` for mouse aiming when using the :ref:`Input.MOUSE_MODE_CAPTURED<class_Input_constant_MOUSE_MODE_CAPTURED>` mouse mode, regardless of the project's stretch mode.
  96. .. rst-class:: classref-item-separator
  97. ----
  98. .. _class_InputEventMouseMotion_property_tilt:
  99. .. rst-class:: classref-property
  100. :ref:`Vector2<class_Vector2>` **tilt** = ``Vector2(0, 0)`` :ref:`🔗<class_InputEventMouseMotion_property_tilt>`
  101. .. rst-class:: classref-property-setget
  102. - |void| **set_tilt**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
  103. - :ref:`Vector2<class_Vector2>` **get_tilt**\ (\ )
  104. Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from ``-1.0`` to ``1.0`` for both axes.
  105. .. rst-class:: classref-item-separator
  106. ----
  107. .. _class_InputEventMouseMotion_property_velocity:
  108. .. rst-class:: classref-property
  109. :ref:`Vector2<class_Vector2>` **velocity** = ``Vector2(0, 0)`` :ref:`🔗<class_InputEventMouseMotion_property_velocity>`
  110. .. rst-class:: classref-property-setget
  111. - |void| **set_velocity**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
  112. - :ref:`Vector2<class_Vector2>` **get_velocity**\ (\ )
  113. The mouse velocity in pixels per second.
  114. \ **Note:** :ref:`velocity<class_InputEventMouseMotion_property_velocity>` is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means mouse sensitivity will appear different depending on resolution when using :ref:`velocity<class_InputEventMouseMotion_property_velocity>` in a script that handles mouse aiming with the :ref:`Input.MOUSE_MODE_CAPTURED<class_Input_constant_MOUSE_MODE_CAPTURED>` mouse mode. To avoid this, use :ref:`screen_velocity<class_InputEventMouseMotion_property_screen_velocity>` instead.
  115. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  116. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  117. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  118. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  119. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  120. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  121. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  122. .. |void| replace:: :abbr:`void (No return value.)`