Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Завершающие штрихи¶
На данный момент мы завершили всю функциональность для нашей игры. Ниже остаются некоторые шаги, слегка добавляющие "сока" и улучшающие игровой опыт.
Не стесняйтесь совершенствовать геймплей своими собственными идеями.
Фон¶
Серый фон по умолчанию не очень привлекателен, так что давайте поменяем его цвет. Один из способов сделать это - использовать узел ColorRect. Создайте его первым узлом под Main
, таким образом он будет прорисовываться за другими узлами. ColorRect
имеет только одно свойство: Color
. Подберите цвет, который вам нравится, и выберите "Layout" -> "Anchors Preset" -> "Полный прямоугольник" либо на панели инструментов в верхней части окна просмотра, либо в инспекторе так, чтобы он закрывал экран.
Вы также можете добавить фоновое изображение, если у вас оно есть, используя вместо ColorRect
узел TextureRect
.
Звуковые эффекты¶
Звук и музыка могут быть одним из самых эффективных способов придания игровому процессу большей привлекательности. В папке ресурсов вашей игры есть два звуковых файла: "House In a Forest Loop.ogg" для фоновой музыки и "gameover.wav" для проигрыша игрока.
Добавьте два узла AudioStreamPlayer как дочерние для Main
. Назовите один из них Music
, а другой - DeathSound
. В каждом из них нажмите на свойство Stream
, выберите "Загрузить" и добавьте соответствующий звуковой файл.
Весь звук автоматически импортируется при отключенном параметре Loop
(зацикливание). Если вы хотите, чтобы музыка зациклилась, щелкните маленькую стрелку справа от параметра Stream, выберите Сделать уникальным
, затем нажмите на файл Stream и установите Loop
(с англ. - зациклить).
Для воспроизведения музыки добавьте $Music.play()
в функцию new_game()
и $Music.stop()
в функцию game_over()
.
Наконец, добавьте $DeathSound.play()
в функцию game_over()
.
func game_over():
...
$Music.stop()
$DeathSound.play()
func new_game():
...
$Music.play()
public void GameOver()
{
...
GetNode<AudioStreamPlayer>("Music").Stop();
GetNode<AudioStreamPlayer>("DeathSound").Play();
}
public void NewGame()
{
...
GetNode<AudioStreamPlayer>("Music").Play();
}
Сочетание клавиш¶
Поскольку в игру играют с помощью клавиш управления, было бы удобно, если бы мы могли начать игру, нажав клавишу на клавиатуре. Мы можем сделать это с помощью свойства "Shortcut" узла Button
.
В предыдущем уроке мы создали четыре события ввода для перемещения персонажа. Мы создадим аналогичное событие ввода для привязки к кнопке "Старт".
Выберите "Проект" -> "Настройки проекта", а затем перейдите на вкладку "Список действий". Точно так же, как вы создавали события ввода для движения, создайте новое событие под названием start_game
и добавьте в него клавишу Enter`.
Сейчас самое время добавить поддержку контроллера, если он у вас есть. Подключите контроллер, а затем под каждым действием ввода, для которого вы хотите добавить поддержку контроллера, нажмите кнопку "+" и нажмите соответствующую кнопку, крестовину или направление джойстика, которое вы хотите сопоставить с соответствующим действием ввода. .
В сцене HUD
выберите кнопку StartButton
и найдите ее свойство Shortcut в инспекторе. Создайте новый ресурс Shortcut, щелкнув внутри поля, откройте массив «Events» и добавьте к нему новый элемент массива, щелкнув Array[InputEvent] (size 0).
Создайте новое InputEventAction и назовите его start_game
.
Теперь, когда появляется кнопка запуска, вы можете либо нажать на неё, либо на клавишу Enter, чтобы начать игру.
И на этом вы завершили свою первую 2D-игру в Godot.
Вы сделали персонажа, управляемого игроком, врагов, случайно появляющихся на игровом поле, подсчёт очков, реализовали завершение и повтор игры, пользовательский интерфейс, звуки и многое другое. Поздравляем!
Вам еще многому предстоит научиться, но вы можете воспользоваться моментом, чтобы оценить то, чего вы достигли.
А когда вы будете готовы, вы сможете перейти к Ваша первая 3D игра, чтобы изучить создание полноценной 3D-игры с нуля в Godot.