Naučte se, jak zobrazit vlastní tlačítka v samostatných scénách, aby fungovala jako jednoduchá obrazovková menu pro vaše hry.
Klíčové věci
- Vlastní nabídky v Godot mohou zlepšit zapojení a uživatelský zážitek tím, že poskytují snadnou navigaci a rychlý přístup k herním funkcím.
- Godot poskytuje výkonnou sadu nástrojů pro vytváření vlastních nabídek uživatelského rozhraní pomocí ovládacích uzlů v herním enginu.
- V Godotu můžete vytvářet nabídky, jako jsou nabídky start, nabídky pozastavení a herní obrazovky, přidáním vhodných uzlů a implementací jejich funkcí pomocí GDScript.
Vlastní menu mohou výrazně zlepšit zapojení a uživatelský zážitek z vaší hry Godot. Vytvořením intuitivních a vizuálně atraktivních nabídek můžete hráčům poskytnout snadnou navigaci a rychlý přístup k různým herním funkcím.
Naštěstí Godot poskytuje výkonnou sadu nástrojů pro vytváření vlastních nabídek uživatelského rozhraní pomocí ovládacích uzlů.
Nastavení hry Godot
Pro začátek vytvořte 2D herní scénu herní engine Godot
. Přidat KinematicBody2D uzel pro postavu hráče a připojte a CollisionShape2D uzel k němu, definujte tvar obdélníku, který představuje kolizní oblast hráče.Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.
Kromě toho zahrňte a Sprite2D uzel pro vizuální zobrazení postavy hráče. Níže je uveden fragment kódu GDScript, který umožňuje pohyb hráče:
rozšiřuje KinematicBody2D
konstantní RYCHLOST = 200
konstantní GRAVITA = 500
var rychlost = Vector2.ZEROfunc _physics_process (delta):
var move_direction = 0-li Input.is_action_pressed("ui_right"):
směr_pohybu += 1-li Input.is_action_pressed("ui_left"):
směr pohybu -= 1
velocity.x = směr_pohybu * RYCHLOST
rychlost.y += GRAVITA * delta
velocity = move_and_slide (rychlost, Vector2.UP)
V tomto kódu definujte konstantu RYCHLOST k ovládání rychlosti pohybu hráče. Aktualizujte proměnnou rychlosti v reakci na vstup uživatele a zavolejte move_and_slide() pohybovat hráčem při zohlednění kolizí a gravitace hry.
Vytvořte nabídku Start
Chcete-li vytvořit nabídku Start v Godot, přidejte uzel Control jako kořen scény. Přidejte uzel Label jako potomka tohoto ovládacího uzlu a nastavte jeho text na Jednoduchá hra. Písmo, velikost a barvu štítku si můžete přizpůsobit tak, aby odpovídaly stylu vaší hry.
Poté přidejte uzel Button jako potomka uzlu Control. Nastavte text tlačítka na Hrát hru. Napište vlastní kód pro Hrát hru tlačítko pro ovládání jeho funkcí:
rozšiřuje Control
func _ready():
var playButton = $Button
playButton.connect("stisknuto", sebe, "_on_PlayButton_pressed")
func _on_PlayButton_pressed():
# Načtěte herní scénu
var gameScene = preload("res://GameScene.tscn")
# Přechod na herní scénu
get_tree().change_scene (gameScene)
Tento kód spojuje lisované signál o tlačítko playButton k _on_PlayButton_pressed funkce. Tato funkce načte herní scénu pomocí preload() a vytvoří jeho instanci. To pak používá change_scene() k přechodu na herní scénu.
Podobně můžete přidat Výstup tlačítko, které mohou hráči použít k ukončení hry:
func _ready():
var playButton = $Button
var exitButton = $Button2
playButton.connect("stisknuto", sebe, "_on_PlayButton_pressed")
exitButton.connect("stisknuto", sebe, "_on_ExitButton_pressed")
func _on_ExitButton_pressed():
# Ukončete hru
get_tree().quit()
Tento kód spojuje lisované signál výstupního tlačítka na _on_ExitButton_pressed funkce. Tato funkce volá přestat() k ukončení hry.
Vytvořte nabídku Pauza
Chcete-li do hry Godot přidat nabídku pauzy, vytvořte novou scénu s uzlem Control jako kořenem nabídky pauzy. Navrhněte vizuální prvky menu, včetně štítku pro Pozastaveno a tlačítka pro obnovení hry, návrat do hlavní nabídky a ukončení hry.
Přidejte scénu jako podřízený uzel hlavní hry. Do skriptu připojeného k uzlu Control přidejte následující kód:
rozšiřuje Control
func _ready():
$btnResume.connect("stisknuto", sebe, "_on_resume_button_pressed")
$btnHome.connect("stisknuto", sebe, "_on_menu_button_pressed")
$btnExit.connect("stisknuto", sebe, "_on_exit_button_pressed")
pause_mode = Uzel. PAUSE_MODE_PROCESS
get_tree().paused = nepravda
self.hide()
func _input (událost):
-li event.is_action_pressed("ui_cancel"):
-line self.is_visible_in_tree():
# Pozastavte hru, když není viditelná nabídka pozastavení
self.show()
get_tree().paused = true
jiný:
# Zrušte pozastavení hry, když je již viditelná nabídka pozastavení
self.hide()
get_tree().paused = nepravdafunc _on_resume_button_pressed():
# Skryjte nabídku pozastavení a pokračujte ve hře
self.hide()
get_tree().paused = nepravdafunc _on_menu_button_pressed():
# Návrat do hlavní nabídky
get_tree().change_scene("res://StartMenu.tscn")
func _on_exit_button_pressed():
# Ukončete hru
get_tree().quit()
V _ready() funkce, připojte lisované signál tlačítek pro obnovení, návrat domů a ukončení pro jejich příslušné funkce: _on_resume_button_pressed(), _on_menu_button_pressed(), a _on_exit_button_pressed().
Nastav režim_pauzy uzlu k Uzel. PAUSE_MODE_PROCESS. To umožňuje hře pokračovat v běhu, zatímco je viditelná nabídka pozastavení. Ve výchozím nastavení skrýt nabídku pozastavení pomocí self.hide() a nastavit get_tree().paused na Nepravdivé abyste zajistili, že hra nebude zpočátku pozastavena.
Další, použijte příkaz if v _input (událost) funkce pro kontrolu, zda je ui_cancel je stisknuta akce. Pokud se nabídka pozastavení aktuálně nezobrazuje, můžete hru pozastavit zobrazením nabídky pozastavení a nastavení get_tree().paused na skutečný.
Vytvořte hru přes obrazovku
Chcete-li implementovat hru přes obrazovku v Godot, vytvořte samostatnou scénu s názvem GameOver.tscn definovat jeho prvky uživatelského rozhraní a funkčnost. Tuto scénu můžete přidat jako podřízený uzel, když hráč překročí hranice obrazovky, což znamená konec hry.
Otevřete novou scénu v Godot a přidejte ovládací uzel jako kořen scény. Uvnitř uzlu Control přidejte uzel Label pro zobrazení Konec hry text. Přizpůsobte si písmo, velikost a barvu štítku podle vizuálního stylu vaší hry.
Dále přidejte uzly Tlačítka pro Hrát znovu a Výstup možnosti. Umístěte je vhodně na obrazovku.
Propojte signály tlačítek s jejich příslušnými funkcemi a zpracujte akce po kliknutí. Připojte například Hrát znovu tlačítko pro vyvolání funkce onPlayAgainPressed a Výstup tlačítko pro vyvolání funkce onExitPressed.
Abyste zvládli funkci tlačítek, musíte definovat odpovídající funkce v kódu GDScript hry přes scénu. Zde je příklad:
rozšiřuje Control
func _ready():
$Button.connect("stisknuto", sebe, "onPlayAgainPressed")
$Button2.connect("stisknuto", sebe, "onExitPressed")
func onPlayAgainPressed():
var gameScenePath = "res://GameScene.tscn"
get_tree().change_scene (gameScenePath)
func onExitPressed():
get_tree().quit() # Zavřete herní aplikaci
Jakmile nastavíte GameOver.tscn scénu a definovali potřebnou funkci tlačítek, můžete v hlavní herní scéně použít následující kód k zobrazení hry na obrazovce:
rozšiřuje KinematicBody2D
func _physics_process (delta):
# Zkontrolujte, zda přehrávač nepřekročil hranice obrazovky
var screen_size = get_viewport_rect().size
-li velocity.y > screen_size.y nebo rychlost.y < 0:
show_game_over_screen()
func show_game_over_screen():
get_tree().change_scene("res://GameOver.tscn")
Obrazovka Game Over bude vypadat nějak takto, s tlačítky pro restart hráče nebo pro ukončení:
Včetně dalších funkcí
Při vytváření vlastních nabídek uživatelského rozhraní v Godot pomocí ovládacích uzlů máte možnost přidávat různé funkce pro vylepšení funkčnosti a vizuální přitažlivosti vašich nabídek. Zde je několik nápadů ke zvážení.
Animované přechody
Přidejte plynulé přechody mezi různými obrazovkami nabídek, jako jsou efekty prolínání, zasouvání nebo změny velikosti. Toho můžete dosáhnout úpravou vlastností řídicích uzlů v průběhu času pomocí doplnění nebo přehrávačů animací.
Zvukové efekty
Implementujte zvukové efekty pro poskytnutí zvukové zpětné vazby, když přehrávač stiskne tlačítka nabídky. Můžete přehrávat různé zvuky pro kliknutí na tlačítka, přechody nabídek nebo jiné interakce, aby nabídky byly citlivější a poutavější.
Vestavěný audio systém Godot usnadňuje přehrávání zvuků ve vhodnou dobu.
Vizuální efekty
Pomocí shaderů nebo částicových systémů přidejte do svých nabídek vizuální efekty. Můžete například použít efekt jemné záře na vybraná tlačítka nebo vytvořit částicové efekty, které se spouštějí, když nastanou určité akce nabídky. Tyto efekty mohou vašemu uživatelskému rozhraní dodat uhlazený a pohlcující pocit.
Hudba v pozadí
Zvažte hraní hudba na pozadí bez autorských práv specifické pro každou obrazovku nabídky, aby se vytvořila pohlcující atmosféra. Ke správě hudby na pozadí a zajištění bezproblémových přechodů mezi různými skladbami, když přehrávač prochází nabídkami, můžete v Godotu použít audio streamy nebo audio sběrnice.
Podpora lokalizace
Pokud plánujete přeložit hru do více jazyků, zvažte přidání podpory lokalizace do nabídek uživatelského rozhraní.
Poskytněte mechanismus pro dynamickou změnu textového obsahu štítků a tlačítek na základě vybraného jazyka. Lokalizační nástroje a zdroje Godot mohou pomoci se správou vícejazyčných prvků uživatelského rozhraní.
Nezapomeňte své nabídky otestovat a iterovat se skutečnými uživateli, abyste se ujistili, že dodatečné funkce vylepší celkovou uživatelskou zkušenost a intuitivní navigace. Věnujte pozornost ohledům na výkon, zejména při používání animací a vizuálních efektů, abyste zajistili hladké a citlivé interakce uživatelského rozhraní.
Díky vlastní nabídce uživatelského rozhraní budou hry Godot zajímavější
Vlastní nabídky uživatelského rozhraní mohou hrát zásadní roli v zapojení hráčů. Poskytují intuitivní navigaci, umožňují snadný přístup k herním funkcím a zvyšují celkovou vizuální přitažlivost vaší hry.
S trochou kreativity a trochou kódování můžete navrhnout nabídky, které nejenže poskytují základní funkce, ale také hráče zaujmou a vylepší jejich celkový herní zážitek. Začněte tedy zkoumat a vytvářet svá vlastní jedinečná menu, aby vaše hry Godot vynikly z davu.