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.

Zpracování požadavků na ukončení

Ukončení

Většina platforem má možnost požádat o ukončení aplikace. Na počítačích se to obvykle provádí pomocí ikony "x" v záhlaví okna. Na mobilních zařízeních lze aplikaci ukončit, kdykoli je pozastavena na pozadí.

Zpracování notifikace

Na desktopových a webových platformách obdrží Node speciální upozornění NOTIFICATION_WM_CLOSE_REQUEST ("notifikace správce oken o požadavku na ukončení"), když správce oken požaduje ukončení.

Zpracování oznámení se provádí následovně (na libovolném uzlu):

func _notification(what):
    if what == NOTIFICATION_WM_CLOSE_REQUEST:
        get_tree().quit() # default behavior

Je důležité poznamenat, že ve výchozím nastavení mají všechny aplikace Godotu vestavěné chování pro ukončení, když o ukončení požádá správce oken. Toto lze změnit, aby se uživatel mohl postarat o kompletní postup ukončení:

get_tree().set_auto_accept_quit(false)

Na mobilních zařízeních

Na mobilních platformách neexistuje žádný přímý ekvivalent k NOTIFICATION_WM_CLOSE_REQUEST. Vzhledem k povaze mobilních operačních systémů je jediný moment, ve kterém můžete spustit kód před ukončením, když je aplikace pozastavena na pozadí. V systémech Android i iOS může být aplikace kdykoli pozastavena uživatelem nebo operačním systémem. Připravit se na tuto možnost dopředu můžete využitím NOTIFICATION_APPLICATION_PAUSED ("notifikace o pozastavení aplikace") k provedení všech potřebných akcí, když je aplikace pozastavena.

Poznámka

V systému iOS máte na dokončení úkolu zahájeného tímto signálem pouze přibližně 5 sekund. Pokud tuto dobu překročíte, iOS aplikaci místo pozastavení ukončí.

V systému Android stisknutí tlačítka Zpět aplikaci ukončí, pokud je v Nastavení projektu zaškrtnuto Aplikace > Konfigurace > Ukončit při Zpět (což je výchozí nastavení). Tím se spustí NOTIFICATION_WM_GO_BACK_REQUEST ("notifikace správce oken o požadavku jít zpět").

Odeslání vlastního oznámení o ukončení

I když můžete ukončení aplikace vynutit zavoláním SceneTree.quit ("ukončit"), toto do uzlů ve stromu scény neodešle NOTIFICATION_WM_CLOSE_REQUEST. Ukončení voláním SceneTree.quit tak neumožní dokončení vlastních akcí (jako je uložení, potvrzení ukončení nebo ladění), i když se pokusíte provedení řádku, který ukončení vynutí, zpoždit.

Namísto toho, chcete-li uzly ve stromu scén upozornit na nadcházející ukončení programu, měli byste upozornění odeslat sami:

get_tree().root.propagate_notification(NOTIFICATION_WM_CLOSE_REQUEST)

Odeslání tohoto upozornění informuje všechny uzly o ukončení programu. Samotný program ale na rozdíl od verzí 3.X neukončí. Pro dosažení předchozího chování by měla být po upozornění zavolána SceneTree.quit.