Ismerje meg, hogyan jeleníthet meg egyéni gombokat különálló jelenetekben, hogy egyszerű képernyőmenükként működjenek a játékokhoz.

Kulcs elvitelek

  • A Godot egyéni menüi javíthatják az elköteleződést és a felhasználói élményt azáltal, hogy egyszerű navigációt és gyors hozzáférést biztosítanak a játék funkcióihoz.
  • A Godot hatékony eszközkészletet biztosít egyéni felhasználói felület menük létrehozásához a játékmotor vezérlőcsomópontjai segítségével.
  • Létrehozhat menüket, például startmenüket, szüneteltető menüket és a képernyőkön való játékot a Godot-ban megfelelő csomópontok hozzáadásával és funkcióik megvalósításával a GDScript használatával.

Az egyéni menük nagymértékben növelhetik Godot játékod elkötelezettségét és felhasználói élményét. Az intuitív és tetszetős menük létrehozásával könnyű navigációt és gyors hozzáférést biztosíthat a játékosoknak a különböző játékfunkciókhoz.

Szerencsére a Godot hatékony eszközkészletet biztosít egyéni felhasználói felület menük létrehozásához vezérlőcsomópontok segítségével.

instagram viewer

A Godot játék beállítása

Kezdésként hozzon létre egy 2D-s játékjelenetet a Godot játékmotor. Add hozzá a KinematicBody2D csomópontot a játékos karakteréhez, és csatolja a CollisionShape2D csomóponthoz, határozzon meg egy téglalap alakzatot, amely a játékos ütközési területét reprezentálja.

A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.

Ezenkívül tartalmazza a Sprite2D csomópont a játékos karakterének vizuális megjelenítéséhez. Az alábbiakban egy GDScript kódrészlet látható, amely lehetővé teszi a játékosok mozgását:

kiterjeszti a KinematicBody2D-t

const SPEED = 200
const GRAVITÁCIÓ = 500
var sebesség = Vector2.ZERO

func _physics_process (delta):
var move_direction = 0

ha Input.is_action_pressed("ui_right"):
mozgás_irány += 1

ha Input.is_action_pressed("ui_left"):
mozgás_irány -= 1

sebesség.x = mozgási_irány * SEBESSÉG
sebesség.y += GRAVITÁCIÓ * delta
sebesség = mozog_and_slide (sebesség, Vector2.UP)

Ebben a kódban definiáljon egy állandót SEBESSÉG a játékos mozgási sebességének szabályozására. Frissítse a sebességváltozót a felhasználói bevitel alapján, és hívja move_and_slide() a játékos mozgatásához, miközben figyelembe veszi az ütközéseket és a játék gravitációját.

Hozzon létre egy Start menüt

A Godot-ban indító menü létrehozásához adjon hozzá egy Control csomópontot a jelenet gyökereként. Adjon hozzá egy Címke csomópontot ennek a vezérlőcsomópontnak a gyermekeként, és állítsa be a szövegét a következőre Egyszerű játék. Testreszabhatja a címke betűtípusát, méretét és színét, hogy illeszkedjen a játék stílusához.

Ezután adjon hozzá egy Button csomópontot a vezérlő csomópont gyermekeként. Állítsa be a gomb szövegét Játékot játszani. Írjon egyéni kódot a Játékot játszani gomb a funkcióinak kezeléséhez:

kiterjeszti az irányítást

func _ready():
var playButton = $Button
playButton.connect("sajtolt", maga, "_on_PlayButton_pressed")

func _on_PlayButton_pressed():
# Töltse be a játék jelenetét
var gameScene = preload("res://GameScene.tscn")

# Áttérés a játék színterére
get_tree().change_scene (gameScene)

Ez a kód köti össze a sajtolt jele a playButton hoz _on_PlayButton_pressed funkció. Ez a funkció betölti a játék jelenetét előtöltés() és létrehoz egy példányt belőle. Utána használ change_scene() áttérni a játék színterére.

Hasonlóképpen hozzáadhat egy Kijárat gomb, amellyel a játékosok kiléphetnek a játékból:

func _ready():
var playButton = $Button
var exitButton = $Button2
playButton.connect("sajtolt", maga, "_on_PlayButton_pressed")
exitButton.connect("sajtolt", maga, "_on_ExitButton_pressed")

func _on_ExitButton_pressed():
# Lépjen ki a játékból
get_tree().quit()

Ez a kód köti össze a sajtolt a kilépés gomb jelét a _on_ExitButton_pressed funkció. Ez a függvény hívja Kilépés() hogy kilépjen a játékból.

Hozza létre a Szünet menüt

Szünet menü hozzáadásához a Godot-játékhoz, hozzon létre egy új jelenetet, amelyben a szünet menü gyökere egy Control csomópont. Tervezze meg a menü vizuális elemeit, beleértve a címkét is Szüneteltetve és gombokat a játék folytatásához, a főmenübe való visszatéréshez és a játékból való kilépéshez.

Adja hozzá a jelenetet a fő játék gyermekcsomópontjaként. A vezérlő csomóponthoz csatolt szkriptben adja hozzá a következő kódot:

kiterjeszti az irányítást

func _ready():
$btnResume.connect("sajtolt", maga, "_on_resume_button_pressed")
$btnHome.connect("sajtolt", maga, "_on_menu_button_pressed")
$btnExit.connect("sajtolt", maga, "_on_exit_button_pressed")
pause_mode = Csomópont. PAUSE_MODE_PROCESS
get_tree().paused = false
self.hide()

func _input (esemény):
ha event.is_action_pressed("ui_cancel"):
hanem self.is_visible_in_tree():
# Szüneteltesse meg a játékot, ha a szünet menü nem látható
self.show()
get_tree().paused = igaz
más:
# Szüneteltetés feloldása a játékban, ha a szünet menü már látható
self.hide()
get_tree().paused = false

func _on_resume_button_pressed():
# A szünet menü elrejtése és a játék folytatása
self.hide()
get_tree().paused = false

func _on_menu_button_pressed():
# Visszatérés a főmenübe
get_tree().change_scene("res://StartMenu.tscn")

func _on_exit_button_pressed():
# Lépjen ki a játékból
get_tree().quit()

Ban,-ben _kész() funkciót, csatlakoztassa a sajtolt a Folytatás, Kezdőlap és Kilépés gombok jelzése a megfelelő funkciókhoz: _on_resume_button_pressed(), _on_menu_button_pressed(), és _on_exit_button_pressed().

Állítsa be a pause_mode a csomóponttól Csomópont. PAUSE_MODE_PROCESS. Ez lehetővé teszi a játék folytatását, amíg a szünet menü látható. Alapértelmezés szerint elrejti a szünet menüt a segítségével self.hide() és állítsa be get_tree().paused nak nek hamis hogy a játék kezdetben ne legyen szünetelve.

Következő, használj if utasítást ban,-ben _input (esemény) funkcióval ellenőrizheti, hogy a ui_cancel műveletet lenyomják. Ha a szünet menü jelenleg nem látható, a szünet menü és a beállítások megjelenítésével szüneteltetheti a játékot get_tree().paused nak nek igaz.

Hozzon létre egy játékot a képernyőn

A játék képernyőn való megvalósításához a Godot-ban, hozzon létre egy külön jelenetet GameOver.tscn UI elemeinek és funkcióinak meghatározásához. Ezt a jelenetet gyermekcsomópontként adhatja hozzá, amikor a játékos átlépi a képernyő határait, jelezve a játék végét.

Nyisson meg egy új jelenetet a Godot-ban, és adjon hozzá egy Control csomópontot a jelenet gyökereként. A Vezérlő csomóponton belül adjon hozzá egy Címke csomópontot a megjelenítéséhez Játék vége szöveg. Szabja testre a címke betűtípusát, méretét és színét a játék vizuális stílusának megfelelően.

Ezután adjon hozzá gombcsomópontokat a Játszd újra és Kijárat lehetőségek. Helyezze el őket megfelelően a képernyőn.

Csatlakoztassa a gombjeleket a megfelelő funkciójukhoz, hogy kezelje a kattintáskor végrehajtott műveleteket. Például csatlakoztassa a Játszd újra nevű funkcióhoz onPlayAgainPressed és a Kijárat nevű funkcióhoz onExitPressed.

A gombfunkciók kezeléséhez meg kell határoznia a megfelelő funkciókat a játék GDScript kódjában a jelenet felett. Íme egy példa:

kiterjeszti az irányítást

func _ready():
$Button.connect("sajtolt", maga, "onPlayAgainPressed")
$Button2.connect("sajtolt", maga, "onExitPressed")

func onPlayAgainPressed():
var gameScenePath = "res://GameScene.tscn"
get_tree().change_scene (gameScenePath)

func onExitPressed():
get_tree().quit() # Zárja be a játékalkalmazást

Miután beállította a GameOver.tscn jelenetet, és meghatározta a szükséges gombfunkciókat, a következő kódot használhatja a játék fő jelenetében a játék képernyőn történő megjelenítéséhez:

kiterjeszti a KinematicBody2D-t

func _physics_process (delta):
# Ellenőrizze, hogy a játékos átlépte-e a képernyő határait
var screen_size = get_viewport_rect().size
ha sebesség.y > képernyő_mérete.y vagy sebesség.y < 0:
show_game_over_screen()

func show_game_over_screen():
get_tree().change_scene("res://GameOver.tscn")

A Game Over képernyő valahogy így fog kinézni, gombokkal a lejátszó újraindításához vagy kilépéséhez:

Kiegészítő funkciókkal együtt

Amikor egyéni felhasználói felületi menüket hoz létre a Godot-ban vezérlőcsomópontok segítségével, rugalmasan hozzáadhat különféle funkciókat a menük funkcionalitásának és vizuális vonzerejének javítása érdekében. Íme néhány megfontolandó ötlet.

Animált átmenetek

Adjon hozzá zökkenőmentes átmeneteket a különböző menüképernyők között, például eltűnések, becsúsztatások vagy méretezési effektusok. Ezt úgy érheti el, hogy idővel módosítja a vezérlő csomópontok tulajdonságait tweens vagy animációs lejátszók segítségével.

Hang hatások

Valósítson meg hangeffektusokat, hogy hangvisszajelzést adjon, amikor a lejátszó megnyomja a menü gombokat. Különböző hangokat játszhat le gombkattintáshoz, menüátmenetekhez vagy más interakciókhoz, hogy a menük jobban reagáljanak és vonzóbbak legyenek.

A Godot beépített audiorendszere megkönnyíti a hangok megfelelő időpontokban történő lejátszását.

Vizuális effektek

Használjon árnyékolókat vagy részecskerendszereket, hogy vizuális effektusokat adjon a menüihez. Például finom fényhatást alkalmazhat a kiválasztott gombokon, vagy részecskeeffektusokat hozhat létre, amelyek bizonyos menüműveletek esetén aktiválódnak. Ezek az effektusok csiszolt és magával ragadó érzést adhatnak felhasználói felületének.

Háttérzene

Fontolja meg a játékot szerzői jog mentes háttérzene minden menüképernyőre jellemző, hogy magával ragadóbb légkört teremtsen. A Godot-ban audio adatfolyamokat vagy audiobuszokat használhat a háttérzene kezeléséhez, és biztosíthatja a zökkenőmentes átmenetet a különböző műsorszámok között, miközben a lejátszó a menükben navigál.

Lokalizációs támogatás

Ha több nyelvre tervezi lefordítani játékát, fontolja meg a lokalizációs támogatás hozzáadását a felhasználói felület menüihez.

Biztosítson egy olyan mechanizmust, amellyel dinamikusan módosíthatja a címkék és gombok szövegtartalmát a kiválasztott nyelv alapján. A Godot lokalizációs eszközei és erőforrásai segíthetnek a többnyelvű felhasználói felület elemeinek kezelésében.

Ne felejtse el tesztelni és iterálni a menüket valódi felhasználókkal, hogy megbizonyosodjon arról, hogy a kiegészítő funkciók javítják az általános felhasználói élményt, és intuitív módon navigálhatnak. Ügyeljen a teljesítmény szempontjaira, különösen animációk és vizuális effektusok használatakor, hogy biztosítsa a zökkenőmentes és érzékeny felhasználói interakciót.

A Godot-játékok vonzóbbá tétele az egyéni felhasználói felület menüjével

Az egyéni felhasználói felület menüi döntő szerepet játszhatnak a játékosok elköteleződésében. Intuitív navigációt biztosítanak, könnyű hozzáférést biztosítanak a játék funkcióihoz, és javítják a játék általános vizuális vonzerejét.

Egy kis kreativitással és némi kódolással olyan menüket tervezhet, amelyek nemcsak alapvető funkciókat biztosítanak, hanem elbűvölik a játékosokat és javítják az általános játékélményüket. Tehát kezdje el felfedezni és elkészíteni saját egyedi menüit, hogy Godot játékai kitűnjenek a tömegből.