Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Myš a souřadnice vstupu

Úvod

Důvodem tohoto malého tutoriálu je objasnění mnoha běžných chyb ohledně souřadnic vstupu, získání polohy myši, rozlišení obrazovky a podobně.

Hardwarové souřadnice displeje

Použití hardwarových souřadnic má smysl, když píšete složitá uživatelská rozhraní určená k použití na PC, jako jsou editory, MMO, nástroje a podobně. Mimo toto však až takový smysl nedává.

Souřadnice zobrazení průzoru

Godot používá k zobrazení obsahu průzory. Průzory lze škálovat několika způsoby (viz návod Multiple resolutions). Proto k získání souřadnic myši a velikosti výřezu používejte funkce v uzlech, například:

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().get_visible_rect().size)

Případně je možné požádat o pozici myši samotný průzor:

get_viewport().get_mouse_position()

Poznámka

Když je režim myši nastaven na Input.MOUSE_MODE_CAPTURED ("zachycený"), hodnota event.position ("poloha události") z InputEventMouseMotion ("vstupní událost pohybu myši") je středem obrazovky. Ke zpracování pohybu myši a změn polohy použijte namísto event.position a event.velocity ("rychlost") vlastnost event.relative ("relativní").

When implementing features such as mouselook, it's recommended to use event.screen_relative and event.screen_velocity instead of event.relative and event.velocity so that mouse movement behaves the same across multiple resolutions.