Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Скайдом - пожалуй, самая красочная и интересная головоломка с действительно уникальными режимами игры!

Скайдом

Три в ряд, Головоломки, Казуальные

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
9
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

Godot. Путь Алкаша.VisibilityNotifier2D⁠⁠

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

Не помню писал про эту ноду или нет, но даже если и писал, повториться будет не зазорно. Очень удобная и утилитарная нода.
https://docs.godotengine.org/ru/stable/classes/class_visibil...

Разбирать буду сразу на примере реальной задачи, как делаю для себя. Без всяких там ужимок про хороший код и тд, для себя я знаю приблизительно конечную цель, чего мне лишний раз потеть.


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

Godot. Путь Алкаша.VisibilityNotifier2D Godot, Godot Engine, Gamedev, Инди, Видео, Без звука, Длиннопост, Мат

Дом не бесконечен в высоту и имеет крышу, которую можно увидеть если долететь. Так что из воздуха падать ничего не должно. Можно конечно сделать анимацию, как из окна высовывается очередной негодяй и бросает мусор, но это дорого, одна анимация дороже всей игры получится. Можно уйти в дичь и запилить летающую тарелку или Байдена на вертолете, все и так знают, что они основной источник мусора под балконами.


Но можно сделать проще и спавнить объекты, только тогда, когда ещё не видно крыши и игрок не видит источник спавна, но его наличие там подразумевается. Так и в реальности обычно происходит, окурок падает, голову поднимешь, а там уже и нет никого.


Ну хватил лирики, начну делать.

Godot. Путь Алкаша.VisibilityNotifier2D Godot, Godot Engine, Gamedev, Инди, Видео, Без звука, Длиннопост, Мат

Теперь доработаем сцену до нужных кондиций и проверим.

Godot. Путь Алкаша.VisibilityNotifier2D Godot, Godot Engine, Gamedev, Инди, Видео, Без звука, Длиннопост, Мат

Переходим на закладку сигналы.

Godot. Путь Алкаша.VisibilityNotifier2D Godot, Godot Engine, Gamedev, Инди, Видео, Без звука, Длиннопост, Мат

Теперь подвяжем сигналы к скрипту.

Godot. Путь Алкаша.VisibilityNotifier2D Godot, Godot Engine, Gamedev, Инди, Видео, Без звука, Длиннопост, Мат

Так же делаем со вторым сигналом.

Godot. Путь Алкаша.VisibilityNotifier2D Godot, Godot Engine, Gamedev, Инди, Видео, Без звука, Длиннопост, Мат

Кода минимум, но это эталонная реализация паттерна Observer, ладно проверим, работает или нет.

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

Godot. Путь Алкаша.VisibilityNotifier2D Godot, Godot Engine, Gamedev, Инди, Видео, Без звука, Длиннопост, Мат

И код фабрики, тут будет с небольшим изъебом, это задел на следующий пост оставлю.

Godot. Путь Алкаша.VisibilityNotifier2D Godot, Godot Engine, Gamedev, Инди, Видео, Без звука, Длиннопост, Мат

Все у меня уже мысли путаются и на одной картинке сложно объяснить все что хотел, код тоже простой, таймер спавнит сигнал, если сейчас  видно фабрику, то ничего не спавнится, и наоборот.
Почему поставил ноду таймер, а не указал время спавна в export var?? Да просто так меньше кода. Ну и там в рандомном диапазоне выбирается позиция по x для бутылки, проще уже некуда казалось бы) Но на самом деле, пока писал, понял что можно ещё проще, просто по сигналу нотифаера стопать таймер, а потом снова включать, ещё меньше кода будет.

Я побольше акцентировал внимание на сигналах, да просто потому что это кайфовая тема, событийно-ориентированное программирование, на мой взгляд наилучшим образом подходит для геймдева, оно логичное и понятное, оно очень понятно даже далеким от программирования людям. Ну и я не использую никаких IDE, да просто потому что базовый редактор, он гораздо больше подходит для удобочитаемости кода. Да тут я кликнул два раз мышкой и вижу зеленые фитюльки, мне они нагляднее и понятнее чем self.connected(self.... и уж это гораздо понятнее новичкам. Засим прощаюсь, всем GODOT!!

Если есть вопросы, пожелания то велкам в чатик сообщества. https://t.me/Godot_pikabu
Впрочем сейчас он превращается в спонтанный чат разработки pve-coop_платформера в 3D на базе Godot, но там есть по настоящему умные люди, которые могут подсказать дельные вещи.

UPD. Вот алкашина-то, даже не залил видео с бутылками падающими)
ну а хуле у себя работает и нормас, чего о других думать, было бы грустно если бы не было так смешно))

Показать полностью 8 2
[моё] Godot Godot Engine Gamedev Инди Видео Без звука Длиннопост Мат
0
20
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

ГЦ Свидетели Godot'овы. Нас 100 человек⁠⁠

Всем привет. Потихоньку, потихоньку, но нас любителей Godot'а набралось 100 человек в сообществе, я очень счастлив и даже нажрался по этому поводу, как всегда)) Люблю вас всех, просто за то, что вы любите Godot. И на радостях небольшой анонсик.

Не только в юнити и UE можно делать прикольные эффекты, Godot может делать все тоже самое, а в 4 версии которая нас ждет, будет ещё всего больше.
Ну и это 3D

ГЦ Свидетели Godot'овы. Нас 100 человек Godot, Godot Engine, Инди, Gamedev, Видео, Без звука, YouTube, Длиннопост, Мат

Не спорю, далеко от идеала, первая моя попытка в 3D партиклы, @xenofob, прям вытащил меня из пучины, в дальнейшем думаю посты по Gridmap будут от него или может от меня, короче он забрал в нашем проекте с меня кучу работы с ассетами, даже как-то дышать стало легче, посмотрел один видосик и за часик вот сразу собрал такой эффектик. Как красные карандаши в проекте заменю на эти пульки, так сразу же будет пост, как делать подобное.

Кому интересно прямо сейчас, этот чувак прям вообще хорошо основы рассказывает.
https://www.youtube.com/watch?v=DkJ2jYl-ESw&ab_channel=G...
Но английский желателен или общее понимание работы партиклов, вообщем что-то не понятно будет, спрашивайте.
А по своему разумению, скоро напишу как делать подобные)

Всем Godot!!!


А вообще пишите, не сомневайтесь в себе, не думайте, что вы ничего не знаете и не умеете. Если вы умеете что-то делать, то запросто ещё 100 человек, не знают, как это сделать или вы покажете другой подход к общей проблеме. Надо менять это отношение к себе и другим, консерватизм не выход сейчас, англоязычные ресурсы заполнены Godot, он стремительно занимает позиции, дойдет и к нам, нет смысла стесняться, не в этом сообществе. Написав пост на любую тему, вы свои знания о ней двукратно увеличите. Это не байт и не для охвата, тут никогда не будет рекламы. Это для общего и саморазвития. Делится своим опытом, это не постыдно!
Тут не будет никогда, что за мнение о Godot, даже отличное от других вас осудят, всех токсиков сразу в бан. Это территория добра.

UPD:
Но это добро не для всех, это ультраправая территория Godot. Чатик все показал.
https://t.me/Godot_pikabu
Бухло, секcзизм(бля я не знаю как это слово правильно написать, оно всегда подчеркнуто остается), троллинг и пиздеж обо всем кроме Godot, но мы все выговорились, по сути каждый о своем наболевшем, поделились проектами, проблемами и о хуйне пообщались всякой, хз что будет дальше, но и о потенциальной помощи друг другу договорились ,за всех не скажу, я договорился)) Я буду помогать, когда-нибудь и мне понадобится, короче чатик норм получился, не думал что вообще кто-то зайдет. Уверен что эти парни помощи ещё дадут. Но вряд-ли получится найти халявного разработчика, каждый со своим проектом, хотя один всех пытался собрать в общее, так что дерзайте не разрабы, у нас там есть один ГД, правда он многих кодеров за пояс заткнет) Велкам блять)

Показать полностью 1 1
Godot Godot Engine Инди Gamedev Видео Без звука YouTube Длиннопост Мат
19
7
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

Godot. 2.5DPlatformer. GridMap и MeshLibrary⁠⁠

Всем привет. Последний раз у меня не получилось тихонечко попить пивка и покодить, всё это превратилось в трехдневную вакханалию, за малым в запой не ушел тотальный. Так что все, снова начинаю трезвый период жизни, художник начал рисовать, куча разрозненных механик написана, в целом всё есть, пора собирать играбельный прототип.


Арт у нас будет плана как на картинке ниже, поскольку игра формально двумерная, то лучше чем GridMap ничего и не подойдет для этого. Основа из него, а поверх уже и декор.

Первые наброски

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Экспериментировать я так и продолжу из базового шаблона, в целом там уже мало конечно что от него осталось, плюс первоначальную meshlibrary немножко дополнил, пока разбирался и экспериментировал.

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Но это фигня, сейчас создам новую библиотеку и немножко расскажу по мере сил, на самом деле много у меня у самого ещё вопросов, особенно с лестницами я замучался, ладно все по очереди, может кто подскажет заодно чего дельного.

Пока наш художник работает над лесной локацией, сделаю отдельную для подземелья, в процессе сформируется и список требований для моделек)
Использовать буду это бесплатный пак.
https://kaylousberg.itch.io/kaykit-dungeon

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Очень даже сгодится, модельки простые, но выглядит мило.

Качаем, распаковываем и охреневаем.

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Просто все в одной папке, кучей. Придется, все это перебирать по всей видимости ручками, потому что тут и стенки и пол и мечи с бочками, все вперемешку. По хорошему, сына бы надо посадить, пусть сортирует, в процессе и по библиотекам распихать. Ладно, глаза боятся, руки делают.

Я не знаю пока более оптимального способа, так что просто все запихал в одну папку, и оттуда буду потихоньку выдергивать что мне нужно. В паке много разных форматов, в Godot рекомендован glb, потому его и выбрал, можно обратить внимание, что используемые материалы, так же импортируются вместе с модельками, удобно).

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Создадим новый ресурс.

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Тип MeshLibrary

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост
Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Надо начать хотя бы с пола, потому поищем какую-нибудь подходящую плитку.

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост
Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

А теперь надо её запихать в библиотеку которую создавали ранее.

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост
Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост
Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

А сейчас пора удалить старую библиотеку в GridMap и начать использовать новую.

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост
Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост
Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Ну вот, все старые кубики заменились на новые плитки, правой кнопкой можно все это почистить и начать пилить новый уровень)

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Опытным путем, выяснилось что размер плитки 2*2*1м. Проекции переключаются хоткеями ZXC, смещать слой ближе дальше можно хоткеями Q и E

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Нарисовал пока такую штуку, самое время проверить что получилось, в целом довольно очевидно, что все будет плохо и игрок просто провалится вниз, потому что нигде не указали коллизии.

Коллизии можно указать минимум двумя способами, для простых фигур типа куба, можно сделать следующим образом.

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост
Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

И второй вариант. Для этого надо вернуться в ранее унаследованную сцену модельки.

Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост
Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост
Godot. 2.5DPlatformer. GridMap и MeshLibrary Gamedev, Инди, Godot, Godot Engine, Разработка, Видео, Без звука, Длиннопост

Ну и проверим, что все работает как надо.

Ну, вот все получилось как надо, даже лимит на картинки вышел в посте, пардон что так много получилось. В целом это пост для @xenofob, так что все неясности, полезные уточнения и замечания от него, будут в следующем посте, а может и он чего напишет, в конце концов, нам надо определится, как будем делать, чтобы максимально удобно и быстро было)

Ну а если не будет замечаний, то будет по лестницам значит, головоломная там конечно хрень, работает у меня все через жопу с ними. Даже есть мысль, вообще нафиг не использовать лестницы и не усложнять себе жизнь)

Всем спасибо за внимание, сейчас трезвый так писать возможно буду пореже, но и дичи поменьше будет)

Показать полностью 23 2
[моё] Gamedev Инди Godot Godot Engine Разработка Видео Без звука Длиннопост
4
6
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

Godot. Путь Алкаша. Рейкасты. Продолжение⁠⁠

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

Пока шел домой с работы, столько мыслей было в голове, а сел за комп и пустота, зовущая в доту играть)

Ну лиха беда - начало. В прошлом посте, закончил на том, что враги определяют край платформы или стенки и при касании разворачиваются, теперь надо сделать чтобы они могли прыгать.

Изобретать ничего не буду, все согласно замечательному напутствию Godot Engine. Библиотека новичка
учимся работать с документацией.
https://docs.godotengine.org/en/stable/tutorials/physics/usi...

Godot. Путь Алкаша. Рейкасты. Продолжение Godot, Godot Engine, Gamedev, Инди, Алкоголизм, Видео, Без звука, Длиннопост

Так и сделаю, разве что условие для прыжка будет не Input, а столкновение с препятствием.

Godot. Путь Алкаша. Рейкасты. Продолжение Godot, Godot Engine, Gamedev, Инди, Алкоголизм, Видео, Без звука, Длиннопост

Ну проверим, что получилось.

Теперь быстренько подправим сцену вражины, самым наверное простым способом, чтобы определять, может он запрыгнуть или нет.

Godot. Путь Алкаша. Рейкасты. Продолжение Godot, Godot Engine, Gamedev, Инди, Алкоголизм, Видео, Без звука, Длиннопост
Godot. Путь Алкаша. Рейкасты. Продолжение Godot, Godot Engine, Gamedev, Инди, Алкоголизм, Видео, Без звука, Длиннопост
Godot. Путь Алкаша. Рейкасты. Продолжение Godot, Godot Engine, Gamedev, Инди, Алкоголизм, Видео, Без звука, Длиннопост

Теперь надо поменять условия для прыжка, сейчас сделаем только чтобы запрыгивал на допустимое препятствие, спускаться он и так уже умеет.

Godot. Путь Алкаша. Рейкасты. Продолжение Godot, Godot Engine, Gamedev, Инди, Алкоголизм, Видео, Без звука, Длиннопост

По идее сейчас бы самое хорошее время было написать блоксхему, как и что когда должно прыгать, но быстро меня укачало сегодня, так словами постараюсь) Хотя уже и словами тяжело.


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

Если подошли к стенке и не можем перепрыгнуть, разворачиваемся

Если подошли к краю и можем упасть, падаем.

Если подошли к стенке и можем перепрыгнуть, прыгаем.

И все это мы проверяем, если мы сейчас уже не в прыжке. Согласен сложная схема, но она зато очевидная, для скорости самое оно.

Godot. Путь Алкаша. Рейкасты. Продолжение Godot, Godot Engine, Gamedev, Инди, Алкоголизм, Видео, Без звука, Длиннопост

Блин я даже сделал, не так как описал, то есть я понимаю, что это не хорошо, сам не люблю множественные вложения If, но я прирожденный гавнокодер, я даже описать не могу, они такие конструкции сами складываются, особенно после полбутылочки водочки и 0.5 пива. Скорость прыжка тоже увеличил. Иначе малохольный краб не дотягивал по высоте)

Ну вот в целом все работает, тут огромный просто для улучшения, как минимум это выставление рейкаста для проверки возможности прыжка, по высоте прыжка для краба. Это прыжок с максимально возможной дистанции, чтобы не обтираться об стенку, прыжок на сложные конструкции с неквадратной формой. Возможность прыгать на двигающуюся платформу с упреждением и многое, многое другое. Для все этого, очень пригодятся рейкасты, как одно из наиболее простых средств, наколхозить конечно можно много всякого разного, но с ними, как видите все очень просто и кода, минимум.


Ещё раз тему рейкастов затрону в процессе доделки лазерного прицела, все остальное уже будет как сопуствующее, к обещанному опенсорсному шаблону платформера, ну возможно что-то напишу в процессе его разработки)

Спасибо всем за внимание, можете пинать, можете не пинать. Все одно что-нибудь ещё напишу.
Всем Godot.

UPD @xenofob, задал вопрос, мол кубик на который прыгает краб, выглядит словно через него можно пройти. Это мой косяк, как человека, вообще не способного к красивому или гармоничному, я просто выбрал любой квадратный тайл для примера) у него тоже есть область коллизии)

Godot. Путь Алкаша. Рейкасты. Продолжение Godot, Godot Engine, Gamedev, Инди, Алкоголизм, Видео, Без звука, Длиннопост

Визуально согласен, что это не читается)

Показать полностью 8 2
[моё] Godot Godot Engine Gamedev Инди Алкоголизм Видео Без звука Длиннопост
41
22
xenofob
xenofob
2 года назад
Свидетели Godot'овы

Физика в 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
[моё] Godot Engine Godot Gamedev Разработка Обучение Инди Урок Программирование Видео Без звука Длиннопост
13
6
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

Godot. Путь Алкаша. Рейкасты⁠⁠

Добрый вечер. Немножко разболелся, так все планы накрылись медным тазом. Но сегодня уже получше, на работе немножко разобрался, так что сейчас напишу на примере одной маленькой но очень нужной задачи, что к чему, в процессе буду накатывать, так что не знаю что выйдет к концу поста)


https://docs.godotengine.org/en/stable/tutorials/physics/ray...

Делать буду на примере базового шаблона, ну и приближу ТЗ к реальному в том формфакторе, как именно мне доводилось работать.

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

Как видите у меня никаких заготовок нету, сейчас в процессе все наглядно покажу.

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

Собственно враги бегают, на краю разворачиваются, на видосике видно.


Представим гипотетическую ситуацию, я снова молод, юн и красив, меня взяли джуном в контору. Мне прилетатает срочный таск в чатик от ГД,
1. надо чтобы враги могли спускаться по рампам,
2.чтобы могли запрыгивать на препятствия в один тайл высотой
3. ЧТобы могли падать с края, если там высота в одни тайл и они могут забраться обратно.
4. Это срочно!!! сегодня показывать билд продюсерской группе, если что пиши или спрашивай у тимлида.


Ладушки, лиха беда начало, да и горе не беда. Топаем к тимлиду за ЦУ и советом.

Тимлдид, будь человеком, билд я с репы стянул, даже запускается, где хоть посмотреть то чего? Задача такая-то.

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

Ну ладно, другого и не ожидалось, хорошо хоть носом ткнули, где начать можно. Будем посмотреть что нас ждет и что это за синие макароны на ушах у краба висят(спойлер: самое нам нужное)

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

Перво наперво, я всегда смотрю, а могу ли я чего-нибудь выпилить, тут я безусловно могу. Зачем мне два рейкаста по краям и флипать картинку, если я могу флипать целиком врага и рейкаст перед ним, удалю лишнее.

Да и вообще для этой задачи, надо переделать сцену, чтобы поудобнее было, не бегать же каждый раз туда.

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

У меня получилось так.

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

Немножко почистим лишнего кода и уберем лишний рейкаст.

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

Сколько лишнего убрали, а работает все так же. А если работает одинаково, то зачем писать больше?)

Немножко текста, разбавить эти картинки. А что собственно происходит и про что этот код?
is_on_wall() он проверяет, касается ли сейчас бочком наш кинематикбоди стенки, если касается, то разворачивает целиком всю сцену и меняет ей вектор движения на противоположный.
_velocity.x *= -1
self.scale.x *= -1

not floor_detector_right.is_colliding()
это значит, что рейкаст который спереди врага стоит и в низ нацелен, он больше не касается пола или стенок, ну что типа там пустота, и если там пустота, то действует так же, как и при касании со стенкой.

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

К слову not можно заменить на ! (Логическое отрицание) и так и так работает, я лично предпочитаю использовать !
Но тут уж заодно раз в качестве болванки взял чужой проект, то буду максимально стараться придерживаться их стилистики, но это пустяки.

Блин большой получается уже пост, а ещё кучу всего надо. Разобью на несколько, иначе в кашу все превратится. Да и болезный организм водочка быстро ушатала, фокус теряю)

Допишу обязательно, на работе то все сделал, быстро вышло. Сделать порой на порядок быстрее, чем попытаться это в посте изложить)

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

Кто опытный и ему это слишком примитивно, ждите разборов от @wolchy, она умная и по существу расскажет, как что устроено в деталях, если время у неё будет, надеюсь на это. У меня только колхоз-стайл, для прикладного использования.

Показать полностью 8 3
[моё] Gamedev Инди Godot Godot Engine Видео Без звука Длиннопост
23
25
MFSUS
MFSUS
2 года назад
Pixel art
Серия Неизвестная История

G#1.04 Правила безопасности⁠⁠

На этом проделки маньяка тут заканчиваются. А работа над историей только начинается.

G#1.04 Правила безопасности Pixel Art, Gameboy, Маньяк, Визуальная новелла, Разработка, Инди игра, Детектив, Godot Engine, 2D анимация, Кровь, Гифка

Не знаю на сколько в такой стилистике жестко выглядит. Интересно, какой рейтинг дали бы вы.

[моё] Pixel Art Gameboy Маньяк Визуальная новелла Разработка Инди игра Детектив Godot Engine 2D анимация Кровь Гифка
0
1
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

Godot. Поддержим за пост⁠⁠

Ещё раз добрый вечер, давайте поддержим @xenofob, Ему кажется, что это очевидная и простая реализация, но нифига. У него машинка годно сталкивается,  он считает, что ему нечего сказать, мне кажется что это не так. Ты разобрался как это сделать легко, будь любезен поделись с комьюнити. Не держи в себе эти знания. Не осуждайте, человек сферу деятельности может меняет, он не программист. Godot открывает таланты.  Ну короче +- надо или нет. Да пофигу на демократию, надо, так что давай не ленись, садись и пиши)) Пост с машинкой точно будет!)

p.s. Я зря вообще влез, но что за движ если я не влез, согласен отдам права))

Godot Engine Godot Gamedev Инди Опыт Видео Без звука
22
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии