InputEventMouseMotion
继承: InputEventMouse < InputEventWithModifiers < InputEventFromWindow < InputEvent < Resource < RefCounted < Object
代表鼠标或笔的移动。
描述
存储鼠标或笔的运动信息。支持相对位置、绝对位置和速度。见 Node._input()。
注意:默认情况下,该事件每个渲染帧最多只会发出一个。如果你需要更精确的输入汇报,请将 Input.use_accumulated_input 设置为 false,尽可能频繁地发出事件。如果你使用 InputEventMouseMotion 来画线,请考虑同时使用 Geometry2D.bresenham_line(),避免在用户快速移动鼠标时出现可见的线条空隙。
注意:即使鼠标没有移动,操作系统或 Godot 本身也可能会发出该事件。如果你确实需要知道鼠标是否移动(例如为了防止显示工具提示),你应当检查 relative.is_zero_approx() 是否为 false。
教程
属性
|
||
|
||
|
||
|
||
|
||
|
||
|
属性说明
使用手写笔的橡皮端时,返回 true。
注意:这个属性在 Linux、macOS 和 Windows 上实现。
表示用户对笔施加的压力。范围从 0.0 到 1.0 。
Vector2 relative = Vector2(0, 0) 🔗
鼠标相对于前一个位置(上一帧时的位置)的位置。
注意:因为 InputEventMouseMotion 可能只在鼠标移动时发出,检查该属性无法可靠地检测鼠标何时停止移动。可能需要一个单独的短时间计时器。
注意:relative 会根据内容缩放系数自动进行缩放,这个系数是在项目的拉伸模式设置中定义的。也就是说在 Input.MOUSE_MODE_CAPTURED 鼠标模式下,如果在脚本中使用 relative 来处理鼠标瞄准,那么鼠标的灵敏度就会因分辨率的不同而不同。为了避免这种情况,请改用 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 鼠标模式时,请使用 screen_relative 实现鼠标瞄准。
Vector2 tilt = Vector2(0, 0) 🔗
代表笔的倾斜角度。正的 X 坐标值表示向右倾斜。正的Y坐标值表示向用户自身倾斜。两个轴的范围是 -1.0 到 1.0。
Vector2 velocity = Vector2(0, 0) 🔗
鼠标速度,单位为像素每秒。
注意:velocity 会根据内容缩放系数自动缩放,内容缩放系数由项目的拉伸模式设置定义。这意味着鼠标灵敏度将根据分辨率而有所不同。
注意:使用 Input.MOUSE_MODE_CAPTURED 鼠标模式时,请使用 screen_relative 实现鼠标瞄准。