InputEventMouseMotion
继承: InputEventMouse < InputEventWithModifiers < InputEventFromWindow < InputEvent < Resource < RefCounted < Object
代表鼠标或笔的移动。
描述
存储鼠标或笔的运动信息。支持相对位置、绝对位置和速度。见 Node._input。
注意:默认情况下,该事件每个渲染帧最多只会发出一个。如果你需要更精确的输入汇报,请将 Input.use_accumulated_input 设置为 false
,尽可能频繁地发出事件。如果你使用 InputEventMouseMotion 来画线,请考虑同时实现布雷森汉姆直线算法,以避免在用户快速移动鼠标时出现可见的线条空隙。
教程
属性
| ||
| ||
| ||
| ||
| ||
| ||
|
属性说明
使用手写笔的橡皮端时,返回 true
。
注意:这个属性在 Linux、macOS 和 Windows 上实现。
表示用户对笔施加的压力。范围从 0.0
到 1.0
。
Vector2 relative = Vector2(0, 0)
🔗
鼠标相对于前一个位置(上一帧时的位置)的位置。
注意:因为 InputEventMouseMotion 只会在鼠标移动时发出,用户停止移动鼠标时,最后一个事件的相对位置不会是 Vector2(0, 0)
。
注意:relative 会根据内容缩放系数自动进行缩放,这个系数是在项目的拉伸模式设置中定义的。也就是说在 Input.MOUSE_MODE_CAPTURED 鼠标模式下,如果在脚本中使用 relative 来处理鼠标瞄准,那么鼠标的灵敏度就会因分辨率的不同而不同。为了避免这种情况,请改用 screen_relative。
Vector2 screen_relative = Vector2(0, 0)
🔗
未缩放的鼠标位置,该位置相对于屏幕坐标系中的前一个位置(上一帧的位置)。
注意:由于 InputEventMouseMotion 只在鼠标移动时发出,因此当用户停止移动鼠标时,上一个事件的相对位置不会是 Vector2(0, 0)
。该坐标不会根据内容缩放因子或调用 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。