xenofob

xenofob

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

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

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

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

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

Физика в 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

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

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

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

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

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

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

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

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

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

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

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

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

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