2

event.is_pressed()クリック (タップ) が発生したタイミングを確認するために使用できることがわかりました。ただし、LMB (マウスの左ボタン) を押したままの追加のモーションはtrueis_pressed()

このテストに使用しているコードのブロックは次のとおりです。

func _input(event):
    var tilemap = find_node("TileMap")
    if(event.is_pressed()):
        tiles.highlight(event.position)

実際にクリックするとtiles.highlight()が呼び出されますが、LMB を押したままマウスを動かしている間は が呼び出されませんtiles.highlight()。ここで使用する必要がある別の機能はありますか?

4

1 に答える 1

3

You can use polling to see if the mouse button is being held down.

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

Otherwise, you can set a variable, for example mouse_button_pressed, to true or false in the _input function when a mouse button is pressed or released and then check it in the _process function:

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())
于 2018-02-10T16:19:05.127 に答える