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。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
属性说明¶
使用触控笔的橡皮擦端时返回true。
注意:此属性在Linux、macOS和Windows上实现。
表示用户对笔施加的压力。范围从0.0到1.0。
Vector2 relative = Vector2(0, 0) 🔗
鼠标相对于前一帧位置的位置。
注意:由于InputEventMouseMotion可能仅在鼠标移动时发出,因此无法通过检查此属性来可靠地检测鼠标何时停止移动。可能需要一个单独的短计时器。
注意:relative根据内容比例因子自动缩放,该因子由项目的拉伸模式设置定义。这意味着在使用relative处理鼠标瞄准的脚本中使用relative时,鼠标灵敏度会因分辨率而异。MOUSE_MODE_CAPTURED]鼠标模式。为避免这种情况,请改用screen_relative。
Vector2 screen_relative = Vector2(0, 0) 🔗
相对于屏幕坐标系中的前一个位置(最后一帧的位置)的未缩放鼠标位置。
注意:由于InputEventMouseMotion可能仅在鼠标移动时发出,因此无法通过检查此属性来可靠地检测鼠标何时停止移动。可能需要一个单独的短计时器。
注意:此坐标是而不是根据内容缩放因子缩放或调用InputEvent.xformed_by()。当使用Input.MOUSE_MODE_CAPTURED鼠标模式输入时,这应该优先于relative,而不管项目的拉伸模式如何。
Vector2 screen_velocity = Vector2(0, 0) 🔗
屏幕坐标中未缩放的鼠标速度(以每秒像素为单位)。此速度是,而不是根据内容缩放因子缩放或调用InputEvent.xformed_by()。当使用Input.MOUSE_MODE_CAPTURED鼠标模式时,无论项目的拉伸模式如何,这应该优先于velocity进行鼠标瞄准。
Vector2 tilt = Vector2(0, 0) 🔗
表示笔的倾斜角度。正X坐标值表示向右倾斜。正Y坐标值表示向用户倾斜。两个轴的范围从-1.0到1.0。
Vector2 velocity = Vector2(0, 0) 🔗
鼠标速度(以每秒像素为单位)。
注意:velocity根据内容比例因子自动缩放,该因子由项目的拉伸模式设置定义。这意味着在处理Input.MOUSE_MODE_CAPTURED鼠标模式输入鼠标瞄准的脚本中使用velocity时,鼠标灵敏度会因分辨率而异。为避免这种情况,请改用screen_velocity。