Создаем отскок мячаОтбивание чего-либо в Годот возможно с помощью функции «move_and_collide()». Мы использовали для столкновение мяча функцию «move_and_slide()», давайте узнаем какая между ними разница. move_and_slide() Эта функция высчитывает столкновение объектов, но она позволяет скользить им по поверхности. Подобную функцию часто используют для игр жанра платформер. И игры в которых нужно просчитывать скольжение. move_and_collide() При столкновение объекты этой функции останавливаются, но столкновение возвращает объект с которым произошло столкновение. Мы будем использовать функцию «move_and_collide()» для столкновение мяча, исправьте код в скрипте мяча. Мы умножим не только на направление и скорость, а еще и на дельту. И позвольте рассказать, что такое «delta». Delta – это количество времени прошедшая с момента вызова последнего кадра игры. Если игра привязана к частоте кадров, то она работает быстрее на быстром ПК и медленней на медленном. Дельта же уравновешивает это, так как она берёт время, пройденное с последнего кадра, в итоге на любом ПК игра будет работать идентично не важно лагает она или нет. Дельта — это числовое значение с плавающий точкой. Дельта достаточна маленькое значение. Если у вас достаточно мощный ПК, то ваша игра будет работать намного быстрее, но дельта будет маленького значения и будет умножаться на скорость объектов достаточно часта. А если же медленный компьютер, то дельта будет больше и умножаться будет реже. Тем самым с помощью дельты мы можем уравновесить скорость игровых объектов. Функция «move_and_collide()» также возвращает объект с которым столкнулись, так что мы используем это. Поместим объект столкновение в переменную «collision_object» чтобы вычислять объекты с которым столкнулся наш мяч. Используем условие. Поместим переменную «collision_object» в условие, если переменная имеет объект столкновение, то в условие будет отправляться «Истина», если же нет, то «Ложь». (pass – это заглушка для всяких условий, циклов, по сути эта команда ничего не выполняет, но предотвращает ошибку) В пишем такую конструкцию: А теперь позвольте объяснить, что здесь происходит, про иллюстрировав происходящие. Здесь вы видите мяч сталкивающийся со стенкой, и здесь мы хотим, чтобы наш мяч отскочил от стенки, и для этого нам понадобиться то что называется нормалью. А нормаль — это просто направление в котором направлена плоскость. Сейчас наша стена (она же плоскость или поверхность) направлена вверх, и мы можем использовать нормаль для вычисление отскока мяча в нужном направлении. И чтобы направлять наш мяч в нужном направлении мы и используем метод «bounce» который применяет аргументом объект столкновения, а точнее его нормаль. Ну а теперь просто запустите игру, и вы заметите как мяч бодренько отскакивает от стенки или игрока, или противника. В следующем разделе мы займемся создание ИИ нашего противника. | |
| |
Просмотров: 26 | |
Всего комментариев: 0 | |
| |