Мишка і координати введення

Відомості

Причина цього невеликого уроку полягає в тому, щоб прояснити багато поширених помилок щодо координат введення, отримання положення мишки та роздільної здатності екрана, тощо.

Координати відображення устаткування

Використання апаратних координат має сенс у випадку написання складних UIs, призначених для запуску на ПК, таких як редактори, ММО, інструменти тощо. Однак це не має такого сенсу за межами цієї сфери.

Координати відображення вікна перегляду

Godot використовує вікна перегляду для відображення вмісту, а перегляди можуть бути масштабовані за кількома параметрами (див. Multiple resolutions). Використовуйте функції в вузлах для отримання координат мишки та розміру вікна перегляду, наприклад:

func _input(event):
   # Mouse in viewport coordinates.
   if event is InputEventMouseButton:
       print("Mouse Click/Unclick at: ", event.position)
   elif event is InputEventMouseMotion:
       print("Mouse Motion at: ", event.position)

   # Print the size of the viewport.
   print("Viewport Resolution is: ", get_viewport_rect().size)

Крім того, можна запитати позицію мишки відносно вікна перегляду:

get_viewport().get_mouse_position()

Примітка

Якщо режим мишки є Input.MOUSE_MODE_CAPTURED, значення event.position від InputEventMouseMotion є центром екрана. Використовуйте event.relative замість event.position і event.speed, щоб обробляти рух і зміни положення мишки.