Узнайте, как отображать пользовательские кнопки в отдельных сценах, чтобы они действовали как простые экранные меню для ваших игр.

Ключевые выводы

  • Пользовательские меню в Godot могут улучшить взаимодействие и взаимодействие с пользователем, обеспечивая удобную навигацию и быстрый доступ к игровым функциям.
  • Godot предоставляет мощный набор инструментов для создания пользовательских меню пользовательского интерфейса с использованием узлов управления в игровом движке.
  • Вы можете создавать такие меню, как меню «Пуск», меню паузы и экраны окончания игры в Godot, добавляя соответствующие узлы и реализуя их функциональность с помощью GDScript.

Пользовательские меню могут значительно повысить вовлеченность и пользовательский опыт вашей игры Godot. Создавая интуитивно понятные и визуально привлекательные меню, вы можете предоставить игрокам удобную навигацию и быстрый доступ к различным функциям игры.

К счастью, Godot предоставляет мощный набор инструментов для создания пользовательских меню пользовательского интерфейса с использованием узлов управления.

Настройка игры Годо

Для начала создайте 2D игровую сцену в игровой движок Godot. Добавить кинематическоетело2D узел для персонажа игрока и прикрепите CollisionShape2D узел к нему, определите прямоугольную форму, которая представляет область столкновения игрока.

Код, используемый в этой статье, доступен в этом Репозиторий GitHub и вы можете использовать его бесплатно по лицензии MIT.

Кроме того, включите Спрайт2D node для визуального отображения персонажа игрока. Ниже приведен фрагмент кода GDScript для включения движения игрока:

расширяет KinematicBody2D

постоянная СКОРОСТЬ = 200
постоянная ГРАВИТАЦИЯ = 500
переменная скорость = Vector2.ZERO

func _physics_process (дельта):
вар движение_направление = 0

если Input.is_action_pressed("ui_right"):
движение_направление += 1

если Input.is_action_pressed("ui_left"):
движение_направление -= 1

скорость.x = направление_движения * СКОРОСТЬ
скорость.у += ТЯЖЕСТИ * дельта
скорость = движение_и_скольжение (скорость, Vector2.UP)

В этом коде определите константу СКОРОСТЬ контролировать скорость передвижения игрока. Обновите переменную скорости в ответ на пользовательский ввод и вызовите move_and_slide() для перемещения игрока с учетом столкновений и гравитации игры.

Создать меню «Пуск»

Чтобы создать стартовое меню в Godot, добавьте узел управления в качестве корня сцены. Добавьте узел Label в качестве дочернего элемента этого узла Control и установите для его текста значение Простая игра. Вы можете настроить шрифт, размер и цвет метки в соответствии со стилем вашей игры.

После этого добавьте узел Button в качестве дочернего элемента узла Control. Установите текст кнопки на Играть в игру. Напишите собственный код для Играть в игру кнопка для управления ее функциональностью:

расширяет контроль

функция _ready():
var playButton = $Button
playButton.connect("нажатый", себя, "_on_PlayButton_pressed")

функция _on_PlayButton_pressed():
# Загружаем игровую сцену
var gameScene = предварительная загрузка("res://GameScene.tscn")

# Переход к игровой сцене
get_tree().change_scene (gameScene)

Этот код соединяет прессованный сигнал кнопка воспроизведения к _on_PlayButton_pressed функция. Эта функция загружает игровую сцену, используя предварительная загрузка() и создает его экземпляр. Затем он использует изменить_сцену () для перехода к игровой сцене.

Точно так же вы можете добавить Выход кнопка, которую игроки могут использовать для выхода из игры:

функция _ready():
var playButton = $Button
вар exitButton = $Button2
playButton.connect("нажатый", себя, "_on_PlayButton_pressed")
кнопка выхода.подключить("нажатый", себя, "_on_ExitButton_нажата")

функция _on_ExitButton_pressed():
# Выйти из игры
get_tree().выйти()

Этот код соединяет прессованный сигнал кнопки выхода на _on_ExitButton_pressed функция. Эта функция вызывает покидать() чтобы выйти из игры.

Создайте меню паузы

Чтобы добавить меню паузы в игру Godot, создайте новую сцену с узлом управления в качестве корня меню паузы. Разработайте визуальные элементы меню, в том числе метку для Приостановлено и кнопки для возобновления игры, возврата в главное меню и выхода из игры.

Добавьте сцену как дочерний узел основной игры. В скрипт, прикрепленный к узлу Control, добавьте следующий код:

расширяет контроль

функция _ready():
$btnResume.connect("нажатый", себя, "_on_resume_button_pressed")
$btnHome.connect("нажатый", себя, "_on_menu_button_pressed")
$btnExit.connect("нажатый", себя, "_on_exit_button_pressed")
pause_mode = узел. PAUSE_MODE_PROCESS
get_tree().paused = ложь
селф.скрыть()

функция _input (событие):
если событие.is_action_pressed("ui_cancel"):
еслинет self.is_visible_in_tree():
# Приостановить игру, когда меню паузы не видно
самовыражение()
get_tree().paused = истина
еще:
# Снять паузу в игре, когда меню паузы уже видно
селф.скрыть()
get_tree().paused = ложь

функция _on_resume_button_pressed():
# Скрыть меню паузы и возобновить игру
селф.скрыть()
get_tree().paused = ложь

функция _on_menu_button_pressed():
# Вернуться в главное меню
get_tree().change_scene("res://StartMenu.tscn")

функция _on_exit_button_pressed():
# Выйти из игры
get_tree().выйти()

в _готовый() функцию, подключите прессованный сигнал кнопок возобновления, возврата домой и выхода к их соответствующим функциям: _on_resume_button_pressed(), _on_menu_button_pressed(), и _on_exit_button_pressed().

Установить pause_mode узла к Узел. PAUSE_MODE_PROCESS. Это позволяет игре продолжать работу, пока отображается меню паузы. По умолчанию скрыть меню паузы с помощью селф.скрыть() и установить get_tree (). Приостановлено к ЛОЖЬ чтобы игра не была поставлена ​​на паузу изначально.

Следующий, использовать оператор if в _input (событие) функция, позволяющая проверить, ui_cancel действие нажато. Если меню паузы в данный момент не отображается, вы можете приостановить игру, отобразив меню паузы и установив get_tree (). Приостановлено к истинный.

Создайте экран окончания игры

Чтобы реализовать экран завершения игры в Godot, создайте отдельную сцену с именем GameOver.tscn для определения его элементов пользовательского интерфейса и функциональности. Вы можете добавить эту сцену в качестве дочернего узла, когда игрок пересекает границы экрана, указывая на конец игры.

Откройте новую сцену в Godot и добавьте узел управления в качестве корня сцены. Внутри узла Control добавьте узел Label для отображения Игра закончена текст. Настройте шрифт, размер и цвет метки в соответствии с визуальным стилем вашей игры.

Затем добавьте узлы Button для Играть снова и Выход параметры. Расположите их соответствующим образом на экране.

Соедините сигналы кнопок с их соответствующими функциями, чтобы обрабатывать действия при нажатии. Например, подключить Играть снова кнопку для функции, называемой onPlayAgainPressed и Выход кнопку для функции, называемой onExitPressed.

Чтобы управлять функциональностью кнопок, вам необходимо определить соответствующие функции в коде GDScript сцены игры. Вот пример:

расширяет контроль

функция _ready():
$Кнопка.connect("нажатый", себя, "onPlayAgainPressed")
$Button2.connect("нажатый", себя, "на выходе")

функция onPlayAgainPressed():
вар gameScenePath = "res://GameScene.tscn"
get_tree().change_scene (gameScenePath)

функция onExitPressed():
get_tree().выйти() # Закрываем игровое приложение

После того, как вы настроили GameOver.tscn сцену и определили необходимые функции кнопок, вы можете использовать следующий код в основной игровой сцене для отображения экрана окончания игры:

расширяет KinematicBody2D

func _physics_process (дельта):
# Проверяем, не пересек ли игрок границы экрана
вар screen_size = get_viewport_rect().size
если скорость.y> screen_size.y или скорость.у < 0:
show_game_over_screen()

функция show_game_over_screen():
get_tree().change_scene("res://GameOver.tscn")

Экран Game Over будет выглядеть примерно так, с кнопками для перезапуска или выхода игрока:

Включая дополнительные функции

При создании пользовательских меню пользовательского интерфейса в Godot с использованием узлов управления вы можете добавлять различные функции для повышения функциональности и визуальной привлекательности ваших меню. Вот несколько идей для рассмотрения.

Анимированные переходы

Добавляйте плавные переходы между различными экранами меню, например плавные переходы, слайды или эффекты масштабирования. Вы можете добиться этого, изменяя свойства узлов управления с течением времени, используя анимацию или анимационные проигрыватели.

Звуковые эффекты

Реализуйте звуковые эффекты, чтобы обеспечить звуковую обратную связь, когда игрок нажимает кнопки меню. Вы можете воспроизводить различные звуки для щелчков кнопок, переходов между меню или других взаимодействий, чтобы сделать меню более отзывчивыми и привлекательными.

Встроенная аудиосистема Godot позволяет легко воспроизводить звуки в нужное время.

Визуальные эффекты

Используйте шейдеры или системы частиц для добавления визуальных эффектов в меню. Например, вы можете применить эффект легкого свечения к выбранным кнопкам или создать эффекты частиц, которые срабатывают при выполнении определенных действий в меню. Эти эффекты могут добавить вашему пользовательскому интерфейсу отточенный и захватывающий вид.

Фоновая музыка

Попробуйте поиграть фоновая музыка без авторских прав специально для каждого экрана меню, чтобы создать более захватывающую атмосферу. Вы можете использовать аудиопотоки или аудиошины в Godot для управления фоновой музыкой и обеспечения плавного перехода между различными треками при перемещении игрока по меню.

Поддержка локализации

Если вы планируете переводить игру на несколько языков, рассмотрите возможность добавления поддержки локализации в меню пользовательского интерфейса.

Предоставьте механизм для динамического изменения текстового содержимого меток и кнопок на основе выбранного языка. Инструменты и ресурсы локализации Godot могут помочь в управлении многоязычными элементами пользовательского интерфейса.

Не забудьте протестировать и повторить свои меню с реальными пользователями, чтобы убедиться, что дополнительные функции улучшают общее взаимодействие с пользователем и интуитивно понятны в навигации. Обратите внимание на соображения производительности, особенно при использовании анимации и визуальных эффектов, чтобы обеспечить плавное и отзывчивое взаимодействие с пользовательским интерфейсом.

Делаем игры Godot более привлекательными с помощью пользовательского меню пользовательского интерфейса

Пользовательские меню пользовательского интерфейса могут сыграть решающую роль в привлечении игроков. Они обеспечивают интуитивно понятную навигацию, обеспечивают легкий доступ к игровым функциям и улучшают общую визуальную привлекательность вашей игры.

Приложив немного творческого подхода и немного кода, вы можете создавать меню, которые не только предоставляют необходимые функции, но и увлекут игроков и улучшат их общий игровой опыт. Итак, начните исследовать и создавать свои собственные уникальные меню, чтобы ваши игры Godot выделялись из толпы.