如何在事件中查看鼠标是否按下或屏幕被触摸?
How to see if mouse is down or screen is touched in event?
我发现我可以使用 event.is_pressed()
检查何时发生了点击(我假设是点击)。但是,当 LMB(鼠标左键)仍然按下时,任何额外的动作都不等于 true
使用 is_pressed()
这是我用于此测试的代码块:
func _input(event):
var tilemap = find_node("TileMap")
if(event.is_pressed()):
tiles.highlight(event.position)
当我实际点击时,tiles.highlight()
被调用,但是当我在 LMB 仍然向下的情况下移动鼠标时,它不会调用 tiles.highlight()
。我需要在这里使用其他功能吗?
您可以使用轮询来查看鼠标按钮是否被按住。
func _ready():
set_process(true)
func _process(delta):
if Input.is_mouse_button_pressed(1): # Left mouse button.
print('Left mouse button pressed. ', get_viewport().get_mouse_position())
否则,您可以在 _input
函数中设置一个变量,例如 mouse_button_pressed
,当按下或释放鼠标按钮时,将其设置为 true
或 false
然后在_process
函数中查看:
func _input(event):
if event is InputEventMouseButton:
if event.is_pressed(): # Mouse button down.
mouse_button_pressed = true
elif not event.is_pressed(): # Mouse button released.
mouse_button_pressed = false
func _process(delta):
if mouse_button_pressed:
print('Left mouse button pressed. ', get_viewport().get_mouse_position())
我发现我可以使用 event.is_pressed()
检查何时发生了点击(我假设是点击)。但是,当 LMB(鼠标左键)仍然按下时,任何额外的动作都不等于 true
使用 is_pressed()
这是我用于此测试的代码块:
func _input(event):
var tilemap = find_node("TileMap")
if(event.is_pressed()):
tiles.highlight(event.position)
当我实际点击时,tiles.highlight()
被调用,但是当我在 LMB 仍然向下的情况下移动鼠标时,它不会调用 tiles.highlight()
。我需要在这里使用其他功能吗?
您可以使用轮询来查看鼠标按钮是否被按住。
func _ready():
set_process(true)
func _process(delta):
if Input.is_mouse_button_pressed(1): # Left mouse button.
print('Left mouse button pressed. ', get_viewport().get_mouse_position())
否则,您可以在 _input
函数中设置一个变量,例如 mouse_button_pressed
,当按下或释放鼠标按钮时,将其设置为 true
或 false
然后在_process
函数中查看:
func _input(event):
if event is InputEventMouseButton:
if event.is_pressed(): # Mouse button down.
mouse_button_pressed = true
elif not event.is_pressed(): # Mouse button released.
mouse_button_pressed = false
func _process(delta):
if mouse_button_pressed:
print('Left mouse button pressed. ', get_viewport().get_mouse_position())