Научете как да показвате персонализирани бутони в отделни сцени, за да действат като прости екранни менюта за вашите игри.
Ключови изводи
- Персонализираните менюта в Godot могат да подобрят ангажираността и потребителското изживяване, като предоставят лесна навигация и бърз достъп до функциите на играта.
- Godot предоставя мощен набор от инструменти за създаване на потребителски UI менюта с помощта на контролни възли в двигателя на играта.
- Можете да създавате менюта като стартови менюта, менюта за пауза и екрани за края на играта в Godot, като добавите подходящи възли и внедрите тяхната функционалност с помощта на GDScript.
Персонализираните менюта могат значително да подобрят ангажираността и потребителското изживяване на вашата игра Godot. Чрез създаването на интуитивни и визуално привлекателни менюта можете да предоставите на играчите лесна навигация и бърз достъп до различни функции на играта.
За щастие Godot предоставя мощен набор от инструменти за създаване на персонализирани менюта на потребителския интерфейс с помощта на контролни възли.
Настройване на играта Godot
За да започнете, създайте 2D игрова сцена в игровият двигател Godot. Добави KinematicBody2D възел за героя на играча и прикрепете a CollisionShape2D възел към него, дефинирайте правоъгълна форма, която представлява зоната на сблъсък на играча.
Кодът, използван в тази статия, е достъпен в това GitHub хранилище и е безплатен за използване под лиценза на MIT.
Освен това включете a Sprite2D възел за визуално показване на героя на играча. По-долу е кодов фрагмент на GDScript, който позволява движението на играча:
разширява KinematicBody2D
const СКОРОСТ = 200
const ГРАВИТАЦИЯ = 500
променлива скорост = Vector2.ZEROфункция _physics_process (делта):
var move_direction = 0ако Input.is_action_pressed("ui_right"):
посока_на_движение += 1ако Input.is_action_pressed("ui_left"):
посока_на_движение -= 1
velocity.x = посока_движение * СКОРОСТ
скорост.y += ГРАВИТАЦИЯ * делта
скорост = движение_и_плъзгане (скорост, Vector2.UP)
В този код дефинирайте константа СКОРОСТ за контролиране на скоростта на движение на играча. Актуализирайте променливата за скорост в отговор на въвеждане от потребителя и извикайте move_and_slide() да преместите играча, като вземете предвид сблъсъците и гравитацията на играта.
Създайте меню "Старт".
За да създадете стартово меню в Godot, добавете контролен възел като корен на сцената. Добавете възел Етикет като дъщерен на този контролен възел и задайте неговия текст на Проста игра. Можете да персонализирате шрифта, размера и цвета на етикета, за да съответства на стила на вашата игра.
След това добавете възел Button като дете на възела Control. Задайте текста на бутона на Играя игра. Напишете персонализиран код за Играя игра бутон за управление на неговата функционалност:
разширява Control
func _ready():
var playButton = $Button
playButton.connect("натиснат", себе си, „_on_PlayButton_pressed“)
func _on_PlayButton_pressed():
# Заредете сцената на играта
var gameScene = preload("res://GameScene.tscn")
# Преход към сцената на играта
get_tree().change_scene (gameScene)
Този код свързва натиснат сигнал на playButton към _on_PlayButton_pressed функция. Тази функция зарежда сцената на играта с помощта на предварително зареждане () и създава негов екземпляр. След това използва change_scene() за преминаване към сцената на играта.
По същия начин можете да добавите Изход бутон, който играчите могат да използват, за да напуснат играта:
func _ready():
var playButton = $Button
var exitButton = $Button2
playButton.connect("натиснат", себе си, „_on_PlayButton_pressed“)
exitButton.connect("натиснат", себе си, „_при_натиснат_бутон за изход“)
func _on_ExitButton_pressed():
# Излезте от играта
get_tree().quit()
Този код свързва натиснат сигнал на бутона за изход към _on_ExitButton_pressed функция. Тази функция извиква напусни () за да излезете от играта.
Създайте менюто за пауза
За да добавите меню за пауза към вашата игра Godot, създайте нова сцена с контролен възел като основа на менюто за пауза. Проектирайте визуалните елементи на менюто, включително етикет за На пауза и бутони за възобновяване на играта, връщане към главното меню и излизане от играта.
Добавете сцената като дъщерен възел на основната игра. В скрипта, прикачен към контролния възел, добавете следния код:
разширява Control
func _ready():
$btnResume.connect("натиснат", себе си, „_on_resume_button_pressed“)
$btnHome.connect("натиснат", себе си, „Натиснат_бутон_в_менюто“)
$btnExit.connect("натиснат", себе си, "_при_натиснат_бутон_за_изход")
pause_mode = Възел. PAUSE_MODE_PROCESS
get_tree().paused = невярно
self.hide()
func _input (събитие):
ако event.is_action_pressed("ui_cancel"):
аконе self.is_visible_in_tree():
# Поставете играта на пауза, когато менюто за пауза не се вижда
self.show()
get_tree().paused = вярно
друго:
# Отменете паузата на играта, когато менюто за пауза вече е видимо
self.hide()
get_tree().paused = невярноfunc _on_resume_button_pressed():
# Скрийте менюто за пауза и възобновете играта
self.hide()
get_tree().paused = невярноfunc _on_menu_button_pressed():
# Върнете се в главното меню
get_tree().change_scene("res://StartMenu.tscn")
func _on_exit_button_pressed():
# Излезте от играта
get_tree().quit()
В _готов() функция, свържете натиснат сигнал на бутоните за възобновяване, начало и изход към съответните им функции: _on_resume_button_pressed(), _on_menu_button_pressed(), и _on_exit_button_pressed().
Нагласи пауза_режим на възела към Възел. PAUSE_MODE_PROCESS. Това позволява на играта да продължи да работи, докато менюто за пауза е видимо. По подразбиране скрийте менюто за пауза, като използвате self.hide() и задайте get_tree().на пауза да се невярно за да се гарантира, че играта не е поставена на пауза първоначално.
Следващия, използвайте оператор if в _input (събитие) функция за проверка дали ui_cancel действие е натиснато. Ако менюто за пауза не се вижда в момента, можете да поставите играта на пауза, като покажете менюто за пауза и настройката get_tree().на пауза да се вярно.
Създайте екран за края на играта
За да приложите екран с края на играта в Godot, създайте отделна сцена, наречена GameOver.tscn за определяне на неговите UI елементи и функционалност. Можете да добавите тази сцена като дъщерен възел, когато играчът пресече границите на екрана, което показва края на играта.
Отворете нова сцена в Godot и добавете контролен възел като корен на сцената. Вътре в контролния възел добавете възел етикет, за да покажете Играта приключи текст. Персонализирайте шрифта, размера и цвета на етикета според визуалния стил на вашата игра.
След това добавете възли на бутони за Играй отново и Изход настроики. Позиционирайте ги по подходящ начин на екрана.
Свържете сигналите на бутоните със съответните им функции, за да управлявате действията при щракване. Например, свържете Играй отново бутон към функция, наречена onPlayAgainPressed и на Изход бутон към функция, наречена onExitPressed.
За да се справите с функционалността на бутоните, трябва да дефинирате съответните функции в GDScript кода на сцената за края на играта. Ето един пример:
разширява Control
func _ready():
$Button.connect("натиснат", себе си, "onPlayAgainPressed")
$Button2.connect("натиснат", себе си, "onExitPressed")
func onPlayAgainPressed():
var gameScenePath = "res://GameScene.tscn"
get_tree().change_scene (gameScenePath)
func onExitPressed():
get_tree().quit() # Затворете приложението за игра
След като настроите GameOver.tscn сцена и определи необходимата функционалност на бутона, можете да използвате следния код в основната сцена на играта, за да покажете играта над екрана:
разширява KinematicBody2D
функция _physics_process (делта):
# Проверете дали играчът е преминал границите на екрана
var screen_size = get_viewport_rect().size
ако velocity.y > screen_size.y или скорост.y < 0:
show_game_over_screen()
func show_game_over_screen():
get_tree().change_scene("res://GameOver.tscn")
Екранът Game Over ще изглежда така, с бутони за рестартиране или излизане от играча:
Включително допълнителни функции
Когато създавате персонализирани менюта на потребителския интерфейс в Godot с помощта на контролни възли, имате гъвкавостта да добавяте различни функции, за да подобрите функционалността и визуалната привлекателност на вашите менюта. Ето някои идеи, които да обмислите.
Анимирани преходи
Добавете плавни преходи между различните екрани на менюто, като избледняване, плъзгане или ефекти на мащабиране. Можете да постигнете това, като променяте свойствата на контролните възли с течение на времето, като използвате tweens или анимационни плейъри.
Звукови ефекти
Внедрете звукови ефекти, за да осигурите звукова обратна връзка, когато играчът натисне бутоните на менюто. Можете да възпроизвеждате различни звуци за щраквания на бутони, преходи в менюта или други взаимодействия, за да направите менютата да се чувстват по-отзивчиви и ангажиращи.
Вградената аудио система на Godot улеснява възпроизвеждането на звуци в подходящи моменти.
Визуални ефекти
Използвайте шейдъри или системи от частици, за да добавите визуални ефекти към вашите менюта. Например, можете да приложите фин ефект на сияние към избрани бутони или да създадете ефекти на частици, които се задействат, когато се появят определени действия в менюто. Тези ефекти могат да добавят изчистено и завладяващо усещане към вашия потребителски интерфейс.
Фонова музика
Помислете за игра фонова музика без авторски права специфични за всеки екран на менюто, за да създадете по-завладяваща атмосфера. Можете да използвате аудио потоци или аудио шини в Godot, за да управлявате фоновата музика и да осигурите безпроблемни преходи между различни песни, докато играчът навигира през менютата.
Поддръжка за локализация
Ако планирате да преведете играта си на няколко езика, помислете за добавяне на поддръжка за локализация към вашите менюта на потребителския интерфейс.
Осигурете механизъм за динамична промяна на текстовото съдържание на етикети и бутони въз основа на избрания език. Инструментите и ресурсите за локализация на Godot могат да помогнат при управлението на многоезични елементи на потребителския интерфейс.
Не забравяйте да тествате и повтаряте вашите менюта с реални потребители, за да сте сигурни, че допълнителните функции подобряват цялостното потребителско изживяване и са интуитивни за навигация. Обърнете внимание на съображенията за производителност, особено когато използвате анимации и визуални ефекти, за да осигурите плавни и отзивчиви взаимодействия на потребителския интерфейс.
Правене на Godot Games по-ангажиращи с персонализирано потребителско меню
Персонализираните менюта на потребителския интерфейс могат да играят решаваща роля за ангажираността на играчите. Те осигуряват интуитивна навигация, позволяват лесен достъп до функциите на играта и подобряват цялостната визуална привлекателност на вашата игра.
С малко креативност и кодиране можете да проектирате менюта, които не само осигуряват основна функционалност, но също така завладяват играчите и подобряват цялостното им игрово изживяване. Така че, започнете да проучвате и изработвате свои собствени уникални менюта, за да направите вашите Godot игри да се открояват от тълпата.