В этом уроке мы изучим столкновения (или соприкасается), т.е. когда одни объекты сталкиваются с другими. И сразу приступим к практике. Давайте сделаем так – если наш объект Player не соприкасается с объектом Ground, то цвет фона будет желтым, а если соприкасается, то останется белым.
Создаем новую группу.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-48.png)
Теперь создаем условие, выбираем объект Player и в поиске выбираем в поиске Collision, выбираем объект Ground, и инвертируем событие. Т.е. действие будет выполнятся, когда объект Player не находится на Ground.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-50-1024x305.png)
Вы можете заметить, что ниже тоже есть Collision, но оно будет работать, только если два объекта имеют одинаковые физические свойства (т.е. они сталкиваются). У нас же не так, объект Ground не имеет физический свойств. Кстати, когда сталкиваются или соприкасаются объекты – это сталкиваются и соприкасаются их маски, которые мы с вами настраивали при создании объектов.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-51-1024x141.png)
Кстати, эта красная иконка обозначает, что условие инвертировано.
В действии выберем изменение фона игры.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-52-1024x387.png)
Нажимаем Ок. Далее копируем наше событие.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-53.png)
Теперь инвертируем второе событие, и изменим цвет фона на изначальный, светло серый.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-54.png)
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-55.png)
Получается, что если объект “Player” будет на объекте “Ground”, то фон будет серый. Проверяем. Как видим, все работает успешно.
Давайте добавим еще одно действие, когда объект находится вне дороги – уменьшим линейное демпфирование. Линейное демпфирование – это один из параметров Physics Engine 2.0.котороемы добавляли к объекту Player.
Я напомню, что линейное демпфирование постоянно уменьшает скорость объекта. Чем выше значение, тем быстрее оно замедляет объекты. Вы можете представить это как вязкость воздуха, очень высокие значения даже имитируют движение объекта в жидкости.
У меня сейчас стоит 0.1 для линейного демпфирования. Укажу изменение в 2.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-62-1024x377.png)
И вернем изначальное значение во втором событии.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-63.png)
Проверяем. При проверке я решил, что надо увеличить скорость вперед для объекта Player.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-64-1024x333.png)
И давайте еще добавим звук, когда объект Player выходит за дорогу.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-65-1024x531.png)
Вы можете добавить звук из вашего звукового файла, но в GDevelop есть отличный инструмент создания звуков JFXR.
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-66-1024x392.png)
![](https://xn----ftbowege2g.xn--p1ai/wp-content/uploads/2023/04/image-67-1024x717.png)
А изучим мы его уже на следующем уроке.