【问题标题】:How to see if mouse is down or screen is touched in event?如何查看鼠标是否按下或屏幕是否被触摸?
【发布时间】:2018-02-11 00:35:01
【问题描述】:

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

【问题讨论】:

    标签: godot


    【解决方案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())
    

    否则,您可以在按下或释放鼠标按钮时在_input 函数中将变量(例如mouse_button_pressed)设置为truefalse,然后在_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())
    

    【讨论】:

    • 我读过鼠标左键事件与触摸事件相同,但最好自己研究一下,因为我无法对此进行测试。
    猜你喜欢
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 2016-12-15
    • 2017-01-21
    • 2022-10-14
    相关资源
    最近更新 更多