2.05M
Category: softwaresoftware

Godot. Game engine

1.

Урок #3

2.

13
Добавление противника
Найдем и
продублируем сцену
нашего персонажа
Переименуем его в
«Enemy.tscn»
И еще раз изменим
имя с «Player» на
«Enemy»

3.

14
Рисование уровня
Перетаскиваем картинку из «assets» в поле с текстурой, у
объекта «Sprite»:
Настраиваем
прямоугольник коллизии,
не забываем про ось X

4.

15
Скрипт противника
Нажмем правой кнопкой мыши по «Enemy» – Расширить
скрипт – наследует: «Actor.gd» - Создать

5.

16
Настройка коллизии
В «Collision» укажем слой «Enemy» и маски «Player» и
«World»

6.

17
Написание кода
Открываем код «Enemy.gd» и пишем следующий код:

7.

18
Добавление противника на уровень
Откроем «LevelTemplate» и перетянем «Enemy.tscn» на
сцену
Противник так же как и игрок
должен быть «Ребенком» для
«LevelTemplate»
Сохраним и
протестируем уровень

8.

19
Прикрепление камеры к персонажу
Откроем сцену с персонажем и добавим свойство
«Camera2D». Включаем параметр «Current»
Проверим свойста «Drag Marign H и V». Включим их, если
они отключены. Проверим работу камеры

9.

20
Настройка параметров камеры
Если камера
сильно дергается,
попробуйте изменить
параметры «Drag Margin»
Попробуйте
уменьшить персонажа
вместе с противником, изменив
параметр «Scale»

10.

10
Добавление «слабой точки» противника
Открываем свойства противника и выбираем «Area2D»
Переименуем его в
«StompDetector»

11.

3
Настройка свойства
Выставляем свойству следующие параметры:

12.

4
Выбор формы «слабой точки»
Добавим к нему
подсвойство
«CollisionShape2D»
В окне справа
выберем форму
«RectangleShape2D»

13.

5
Размещение «слабой точки»
Размещаем прямоугольник коллизии
немного больше противника – это
упростит игру и позволит избежать
ложных промахов
Если выбрать
«StompDetector», то
его центр будет под
противником
Чтобы
исправить
это,
поднимите его
на нужный
уровень и
опустите
коллизию
отдельно

14.

6
Программирование логики
Выбираем «StompDetector» – владка «Узел» - body_entered –
выбираем «Enemy» - Присоединить

15.

7
Добавляем атаку персонажу
Добавляем «EnemyDetector» персонажу – CollisionShape2D
– RectangleShape2D – Visability – Выбираем цвет коллизии

16.

8
Атака персонажа
Разместим «EnemyDetector» таким образом. Не забудь
сделать его немного больше персонажа и поднять красный
крестик в центр персонажа

17.

9
Программирование логики
Выбираем событие «AreaEntered» и присоединяем его к
«Player». Сохраняем.

18.

10
Написание кода противника
Откроем скрипт противника и напишем следующий код:
Здесь описан случай, когда
противник не умирает, а иначе
срабатывает функция die().
Функция будет срабатывать когда персонаж падает на
“голову” противнику и удалять его

19.

11
Написание кода игрока
Откроем скрипт персонажа и напишем следующий код:
Здесь описана переменная высоты отскока персонажа при
приземлении на противника. Сохраним код и проверим его,
нажав F6

20.

12
Что делать, если код не работает?
Галочка на Monitorible у
Enemy StompDetector,
Layer - 2, Mask - 1
Проверь:
Mask - 2 у Player
EnemyDetector
Попробуйте подвигать
коллизии, проверьте,
что центры стоят на
местах

21.

13
Попробуй следующее расположение
В случае с игроком, может
помочь опустить центр
EnemyDetector вниз персонажа,
а CollisionShape перенести на
центр

22.

14
Поражение персонажа
Выбираем игрока – EnemyDetector – Узел – body_entered –
Player – Присоединить

23.

15
Код поражения
Откроем скрипт игрока и добавим туда команду удаления
противника. Сохраним. Проверим через F6
Если игрок умирает при прыжке
сверху на противника,
попробуйте поднять
EnemyDetector немного выше

24.

16
Проверь свой код!
Персонаж

25.

17
Проверь свой код!
Персонаж

26.

18
Проверь свой код!
Противник

27.

19
Проверь свой код!
Actor

28.

20
Проверь узлы!
Противник
Игрок
Уровень
English     Русский Rules