InputEventMouseMotion

继承: InputEventMouse < InputEventWithModifiers < InputEventFromWindow < InputEvent < Resource < RefCounted < Object

表示鼠标或笔的移动。

描述

存储有关鼠标或笔运动的信息。这包括相对位置、绝对位置和速度。参见Item.OnInput()

注意:默认情况下,此事件最多每帧渲染一次。如果您需要更精确的输入报告,请将Input.use_accumulated_input设置为false以使事件尽可能频繁地发出。如果您使用InputEventMouseMotion绘制线条,请考虑使用Geometry2D.bresenham_line(),以避免在用户快速移动鼠标时出现明显的线条间隙。

注意:即使鼠标没有移动,操作系统或i3D本身也可能发出此事件。如果您真的需要知道鼠标是否移动(例如禁止显示工具提示),您应该检查relative.is_zero_approx()false

属性

bool

pen_inverted

false

float

pressure

0.0

Vector2

relative

Vector2(0, 0)

Vector2

screen_relative

Vector2(0, 0)

Vector2

screen_velocity

Vector2(0, 0)

Vector2

tilt

Vector2(0, 0)

Vector2

velocity

Vector2(0, 0)


属性说明

bool pen_inverted = false 🔗

  • void set_pen_inverted(value: bool)

  • bool get_pen_inverted()

使用触控笔的橡皮擦端时返回true

注意:此属性在Linux、macOS和Windows上实现。


float pressure = 0.0 🔗

  • void set_pressure(value: float)

  • float get_pressure()

表示用户对笔施加的压力。范围从0.01.0


Vector2 relative = Vector2(0, 0) 🔗

鼠标相对于前一帧位置的位置。

注意:由于InputEventMouseMotion可能仅在鼠标移动时发出,因此无法通过检查此属性来可靠地检测鼠标何时停止移动。可能需要一个单独的短计时器。

注意:relative根据内容比例因子自动缩放,该因子由项目的拉伸模式设置定义。这意味着在使用relative处理鼠标瞄准的脚本中使用relative时,鼠标灵敏度会因分辨率而异。MOUSE_MODE_CAPTURED]鼠标模式。为避免这种情况,请改用screen_relative


Vector2 screen_relative = Vector2(0, 0) 🔗

  • void set_screen_relative(value: Vector2)

  • Vector2 get_screen_relative()

相对于屏幕坐标系中的前一个位置(最后一帧的位置)的未缩放鼠标位置。

注意:由于InputEventMouseMotion可能仅在鼠标移动时发出,因此无法通过检查此属性来可靠地检测鼠标何时停止移动。可能需要一个单独的短计时器。

注意:此坐标是而不是根据内容缩放因子缩放或调用InputEvent.xformed_by()。当使用Input.MOUSE_MODE_CAPTURED鼠标模式输入时,这应该优先于relative,而不管项目的拉伸模式如何。


Vector2 screen_velocity = Vector2(0, 0) 🔗

  • void set_screen_velocity(value: Vector2)

  • Vector2 get_screen_velocity()

屏幕坐标中未缩放的鼠标速度(以每秒像素为单位)。此速度是,而不是根据内容缩放因子缩放或调用InputEvent.xformed_by()。当使用Input.MOUSE_MODE_CAPTURED鼠标模式时,无论项目的拉伸模式如何,这应该优先于velocity进行鼠标瞄准。


Vector2 tilt = Vector2(0, 0) 🔗

表示笔的倾斜角度。正X坐标值表示向右倾斜。正Y坐标值表示向用户倾斜。两个轴的范围从-1.01.0


Vector2 velocity = Vector2(0, 0) 🔗

鼠标速度(以每秒像素为单位)。

注意:velocity根据内容比例因子自动缩放,该因子由项目的拉伸模式设置定义。这意味着在处理Input.MOUSE_MODE_CAPTURED鼠标模式输入鼠标瞄准的脚本中使用velocity时,鼠标灵敏度会因分辨率而异。为避免这种情况,请改用screen_velocity