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()

Сочетание клавиш

Поскольку в игру играют с помощью клавиш управления, было бы удобно, если бы мы могли начать игру, нажав клавишу на клавиатуре. Мы можем сделать это с помощью свойства "Shortcut" узла Button.

В предыдущем уроке мы создали четыре события ввода для перемещения персонажа. Мы создадим аналогичное событие ввода для привязки к кнопке "Старт".

Выберите "Проект" -> "Настройки проекта", а затем перейдите на вкладку "Список действий". Точно так же, как вы создавали события ввода для движения, создайте новое событие под названием start_game и добавьте в него клавишу Enter`.

../../_images/input-mapping-start_game.webp

Сейчас самое время добавить поддержку контроллера, если он у вас есть. Подключите контроллер, а затем под каждым действием ввода, для которого вы хотите добавить поддержку контроллера, нажмите кнопку "+" и нажмите соответствующую кнопку, крестовину или направление джойстика, которое вы хотите сопоставить с соответствующим действием ввода. .

В сцене HUD выберите кнопку StartButton и найдите ее свойство Shortcut в инспекторе. Создайте новый ресурс Shortcut, щелкнув внутри поля, откройте массив «Events» и добавьте к нему новый элемент массива, щелкнув Array[InputEvent] (size 0).

../../_images/start_button_shortcut.webp

Создайте новое InputEventAction и назовите его start_game.

../../_images/start_button_shortcut2.webp

Теперь, когда появляется кнопка запуска, вы можете либо нажать на неё, либо на клавишу Enter, чтобы начать игру.

И на этом вы завершили свою первую 2D-игру в Godot.

../../_images/dodge_preview.gif

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

Вам еще многому предстоит научиться, но вы можете воспользоваться моментом, чтобы оценить то, чего вы достигли.

А когда вы будете готовы, вы сможете перейти к Ваша первая 3D игра, чтобы изучить создание полноценной 3D-игры с нуля в Godot.