如何查看事件中鼠标是否按下或屏幕被触摸?

Kei*_*ith 2 godot

我发现我可以用来event.is_pressed()检查何时发生点击(我假设是点击)。但是,当 LMB(鼠标左键)仍然按下时,任何额外的动作并不等于true使用is_pressed()

这是我用于此测试的代码块:

func _input(event):
    var tilemap = find_node("TileMap")
    if(event.is_pressed()):
        tiles.highlight(event.position)
Run Code Online (Sandbox Code Playgroud)

当我实际单击时,tiles.highlight()会调用 ,但是当我在 LMB 仍然按下的情况下移动鼠标时,它不会调用tiles.highlight()。我需要在这里使用不同的功能吗?

skr*_*krx 5

您可以使用轮询来查看鼠标按钮是否被按下。

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())
Run Code Online (Sandbox Code Playgroud)

mouse_button_pressed否则,您可以在按下或释放鼠标按钮时在函数中设置一个变量,例如true或,然后在函数中检查它:false_input_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())
Run Code Online (Sandbox Code Playgroud)