在事件中如何查看鼠标是否已关闭或屏幕被触摸?

时间:2018-02-09 21:17:14

标签: godot

我发现我可以使用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()。我需要在这里使用不同的功能吗?

1 个答案:

答案 0 :(得分:1)

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

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())

否则,您可以在按下或释放鼠标按钮时将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())