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.
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.ZEROfunc _physics_process (delta):
var move_direction = 0ha Input.is_action_pressed("ui_right"):
mozgás_irány += 1ha 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 = falsefunc _on_resume_button_pressed():
# A szünet menü elrejtése és a játék folytatása
self.hide()
get_tree().paused = falsefunc _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.