xenofob

xenofob

На Пикабу
Дата рождения: 13 января
13К рейтинг 5 подписчиков 12 подписок 31 пост 9 в горячем
Награды:
5 лет на Пикабу
366

Карьерный рост

Карьерный рост Картинка с текстом, Мемы, Грустный юмор, Ожидание и реальность, Ирония, Работа, Спанч Боб, Карьера

работа, карьера

Показать полностью 1
22

Физика в Godot 3.5 на примере одной машинки

Всем привет!


Да, вот так бывает, сидишь никого не трогаешь, примус починяешь Годот ковыряешь, статейки почитываешь, а потом тебе пишет @Boogernator, мол запили пост про машинку, которую ты мне показывал, а то я уже и анонс сделал 😁


Ну мне не жалко, если людям интересно то пожалуйста. Постарался максимально сжато и без воды. Поехали.


Вам понадобятся спрайты кузова и колеса автомобиля. Я использовал бесплатный ассет, в котором на выбор 12 видов транспорта.


Создайте в редакторе новый проект и создайте в нем папку res://assets/, куда добавьте два изображения - кузов и колесо:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Следующим шагом создайте сцену на основе узла RigidBody2D, назовите его Car и к нему дочерними узлами добавьте узлы Sprite и ColissionPolygon2D. В текстуру спрайта перетащите изображение кузова и в свойстве Scale установите значение 0.3:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Для добавления формы столкновения выберите узел ColissionPolygon2D и с помощью точек обведите контур кузова:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Узлу Car в инспекторе задайте массу и гравитацию, с этими значениями можно будет потом поиграть, чтобы добиться нужного результата:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Для колес создайте два узла RigidBody2D с дочерними элементами Sprite и CollisionShape2D. Добавьте текстуру и установите значение Scale на 0.3 по аналогии с кузовом. Разместите колеса на нужных местах, для удобства можете воспользоваться направляющей. Также добавьте форму у коллизий по форме колес:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Колесам тоже задайте гравитацию и массу:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Чтобы присоединить колеса к кузову автомобиля добавьте на сцену два узла Pinjoint2D и разместите их в дереве узлов по одному под каждым колесом а на сцене поставьте по центру каждого колеса:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Теперь у каждого узла Pinjoint2D в инспекторе надо выбрать узлы, которые он будет соединять. У заднего колеса это узлы WheelLeft и Car, у переднего WheelRight и Car соответственно:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Создайте сцену с именем Main на Node2D, это будет главная сцена с дорогой по которой поедет автомобиль. Создайте дорогу и ограничивающие барьеры на основе StaticBody2D, задайте им коллизию и текстуру, я использовал иконку годо. Сделайте эту сцену главной кликнув правой кнопкой мыши по сцене в панели файловой системы:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост
Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

На главную сцену добавьте сцену с автомобилем как дочернюю:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Запустите проект (F5) и убедитесь, что автомобиль собран правильно, колеса не отваливаются и т.п.

Осталось написать несколько cтрок кода, в которых собственно вся сила поста. Т.к. RigidBody2D это физическое тело вы не можете его контролировать напрямую как KinematicBody2D, вместо этого используются гравитация, импульсы и т.д. Двигать автомобиль будем путем подачи крутящего момента на колесо при нажатии клавиш Right и Left.


Прикрепите к узлу Car скрипт со следующим содержимым:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Можно запускать и проверять:

Кому лениво все это повторять можете качнуть репозиторий.


На этом все. Всем приятных экспериментов! 🚕

Показать полностью 12 2

Подскажите диагноз

Зашел к товарищу, тот показал игрушки дочери. Походу ребенок весь на стрессе.

Подскажите диагноз Поп ит, Симпл димпл, Антистресс, Игрушки, Зависимость, Фотография
9

После всех этих ваших рыбов...

После всех этих ваших рыбов... Вы продаете рыбов?, Картинка с текстом, Юмор, Длиннопост
После всех этих ваших рыбов... Вы продаете рыбов?, Картинка с текстом, Юмор, Длиннопост
После всех этих ваших рыбов... Вы продаете рыбов?, Картинка с текстом, Юмор, Длиннопост
После всех этих ваших рыбов... Вы продаете рыбов?, Картинка с текстом, Юмор, Длиннопост
После всех этих ваших рыбов... Вы продаете рыбов?, Картинка с текстом, Юмор, Длиннопост
Показать полностью 5

Рыбов продают

Рыбов продают Аквариумные рыбки, Мобильная фотография, Зоомагазин, Рыбка петушок
Показать полностью 1
147

Работоть умеете?

Работоть умеете? Мемы, Картинка с текстом, Работа, Собеседование, Резюме, Страдающее Средневековье, Вы продаете рыбов?
Показать полностью 1
35

Простите, не удержался

Простите, не удержался
3

Надеюсь пронесет

Надеюсь пронесет
Отличная работа, все прочитано!