Наследование сцен в Godot Engine
HTML-код
- Опубликовано: 8 фев 2025
- Система узлов Godot Engine это очень мощный инструмент. Но в полной мере он раскрывается только при использовании наследования. В этом видео мы изучим систему наследования сцен в Godot Engine, что позволит лучше организовать код проекта и ускорить разработку.
Полный курс по Godot 4: stepik.org/a/1...
Мой дискорд сервер: / discord
Мой канал в телеграмм: t.me/frontend_...
Я на Twitch: / frontend_pashtet
Отличное видео, максимальное сжатое и без воды. Хотелось бы еще услышать про наследование скриптов.
Спасибо. Оно уже на 60% готово)
рад снова вас видеть и слышать)
Приветствую Руфус. Спасибо за комментарий и поддержку)
Надо будет потом поподробнее про наследование в Godot изучит
Базис благодаря паштетику поняла, остались лишь подробности и условности
Спасибо за такое вдохновение к изучению движка Godot!
Не знаю зачем ютуб показал это в рекомендациях, но видео очень крутое. Короткое и интересное
Спасибо за комментарий, Deliz. Очень рад это слышать. Может RUclips хочет, чтобы ты перешёл на Godot)
Спасибо за видео, теперь я понял, что не нужно плодить кучу одинаковых сцен)
НАКОНЕЦ-ТО)))))
Довно тебя не слышал )))
Твои видосы как всегда ТОП
Твои объяснение лучше всех
СПАСИБО ЗА ВИДЕО ))))
Спасибо за поддержку, Хейтер)
@@frontend-pashtet Не за-что ))))
Хорошая статистика каждый 2 человек лайкнул этот видос
кружок вокруг мышки мне напомнили эти туториалы из 2014 :D
пиксельарт, кружок из 2014 - ретро)
Привет от Волонда и спасибо за видео
Привет Воланд) Спасибо за комментарий
по годот редко такие понятные видео зачет )
Спасибо за фидбэк. Буду стараться держать планку.
можно было еще добавить animatedsprite как узел, установить скорость, чтобы просто туда можно было сразу загрузить текстуры которые нужны
Это очень хорошее замечание. Я так раньше делал, но потом пришел к тому, что графика различных дочерних сцен может сильно отличаться. Кому-то достаточно animatedsprite, а кому-то может понадобиться что-то другое. Может несколько спрайтов + tween. Поэтому я обычно графику в родительскую сцену не выношу. Но для примера из видео, вынос бы animatedsprite подошел бы отлично, Мыслишь в ООП)
Это. Просто. Круто (мат ютуб блокает, поэтому без мата. На позитивчике).
Быстро, полезно, без воды, а главное на русском. Подписка, лайк. Буду следить за твоим каналом. Удачи в развитии!
Спасибо большое за такие теплые слова. Это меня очень мотивирует. Постараюсь почаще выпускать ролики.
@@frontend-pashtet кстати, я вот хотел спросить: можно ли как то сделать так, чтобы area2D давал сигнал не только когда body/area входят в него, но и когда стоят там? Я попытался что-то сделать, но ничего не получилось :(
@@notagamedeveloper3805 сигнала нет, но есть несколько вариантов. Когда тело войдет, то сигнал полюбому полетит. Кажется, даже если тело было в Area на момент создания сцены. Также можно проверять наличие тел в области через get_overlapping_bodies, который вернет массив всех тел в Area2d. Или если есть ссылка на конкретное тело, то можно проверить через overlaps_body. Плюс есть сигнал на выход тела из зоны. Все это в связке дает возможность проверить что угодно. Но я бы предпочел сигналы, и не стал бы проверять каждый фрейм, находится ли тело в зоне. Если сигнал входа отрботал, то можно где-то отметить, что тело в зоне, а потом на сигнал выхода, эту отметку убрать. Так будет дешевле всего по производительности. Но overlaps_body и get_overlapping_bodies тоже опция. Я использовал для чего-то.
@@frontend-pashtet блин, оказывается легко. Я что-то не додумал сделать, чтобы отмечать вошло тело, и вышло. То есть я могу просто сделать булевую переменную, например "is_in_area", присвоить ей false. Затем, когда тело, находящееся в группе игрок например, входит в эту арею, присваивать true переменной, а когда выходит - false?
@@notagamedeveloper3805 Да, это, пожалуй, самый простой способ)
Кста ты раньше или сейчас не занимался веб разработкой? просто раньше не знал что такое фронтенд в названии твоего канала думал просто странное название связанное с паштетом щя веб разработка заинтересовала и понял что такое beckend и frontend
Да, паштет фронтенд разработчик
Лучший!
Видео топ
Огромное спасибо
О, Кейро. Привет. Спасибо за комментарий.
Крутой видось!
Спасибо) и за комментарий отдельное спасибо:)
Ни*уя не понятно, но очень интересно -))
Можно просто перед нужными переменными написать @Export
то бишь:
@Export Var name = "Vladlen"
@Export var speed = 10
@Export var animatedsprite = $Animated spriteRED_SLIME
Теперь, если ставить его на сцену с уровнем, то это будет Владлен со скоростью 10 и анимациями красной слизи. Однако, он будет иметь дополнительные настройки в инспекторе (Настройки переменных где мы добавили @Export) И эти переменные теперь можно заменять. При этом - изменённая переменная - будет только у той слизи, которую ты изменил.
шикарно
Конечно, видео старое, да и не про это совсем, чисто примеры, все дела... Но мне кажется, что имя легче поместить в center container или как его там, hbox, чтобы можно было не заморачиваться с центрированием. А так видео топ
Круто
Спасибо)
Что у тебя за курсор? Очень прикольный! Я бы хотел себе такой поставить)
Надеюсь ты ответишь ;)
Привет. Это на маке программа ScreenCursor. В следующем видео я уже понял, что QuickTime умеет тоже выделять курсор. Не так ярко, но умеет.
@@frontend-pashtet Спасибо за ответ. Только поздно посмотрел ;/
здравствуйте как сделать так чтобы объекты только что вставленные в программу не были прозрачными???
ПЛОХОЙ ПРИМЕР ! Чтобы чтото наследовать сначала надо разобраться в типах присоединяемых нодов. Уних могут быть совершенно РАЗНЫЕ ФУНКЦИИ по сравнению с родительской сценой !
Привет, твое видео попалось в реки. Позволь спросить - у меня проблема с многими видосами изза того что Годот время от времени меняется и гайды для таких новичков как я становятся неактуальными. Как быть? 99% видео на ютубе о годоте старее 6 месяцев и написаны для 3 версии
Привет. Гайды с годо 3 частично актуальны, сейчас народ активно пилит материалы под 4ку. Хорошая новость, что годо 5 пока даже не планируется, так что ближайшие 5 лет врядли что-то мегарадикально изменится.
Лучший вариант присоединиться к какому-нибудь сообществу и стараться там информацию добывать. Можешь к нам в дискорд зайти, там много приятных и опытных людей discord.gg/NqF45TKBD7
Какой язык нужно знать для годот?
Хорошее видео, только вот не пойму что такое := и чем он отличается от =
Искал инфу по нему, так ничего и не нашел. Ответь, пожалуйста, спасибо.
Привет. Спасибо за оценку. := это присваиванием с автоматическим выведением типа из значения справа от оператора присваивания. В общем, написать
var damage := 5 равносильно
var damage: int = 5
Типы помогаеют отловить ошибки на этапе компиляции. Гарантируют, что в коде не будет число на строку умножено, например. Я использую := всегда, когда это возможно.
Вот статья из документации с лучшим описанием docs.godotengine.org/en/stable/tutorials/scripting/gdscript/static_typing.html
@@frontend-pashtet спасибо большое за ответ
тракторина топ как можно с ней связаться?
Она такая милая)
Привет помоги с вопросом
Ну вот например чел делает свою игру год и когда например он случайно удалил какой то скрипт или еще что то, и вся его игра крашнулась и можно ли это как то предостеречь чтобы вернуть свой проект может быть его где то хранить надо или как?
Лучше всего git. Придётся потратить время на изучение, но это лучший инструмент
@@frontend-pashtet спасибо помог буду гит изучать
А в 4-м Godot нельзя писать export var
@export var вот и ты сможешь менять значения скорости не влезая затем в код 1:43
А как сохранить целую сцену все что там игрок натворил и его инвентарь? И ещё вопрос как оптимизировать передвижение игрока в плане отгрузки и подгрузки чанков локации, как это вообще работает?
Про сохранение можно целую статью написать. В документации есть пример сохранения, но он запутанный немного. В самом простом случае, ты просто сохраняешь в файл какие-то переменные, которые тебе важны, а при загрузке их восстанавливаешь. Так можно, например, на чекпоинтах или уровнях рестартовать игру. Если тебе прям сцены целиком надо по какой-то причине восстанавливать, то в доке как раз пример из этой серии. docs.godotengine.org/en/stable/tutorials/io/saving_games.html
Про подгрузку чанков. Ну тут надо код писать. Если у тебя чанк- это сцена, то делаешь это стандартными механизмами load/preload.
Когда релиз игры?
Привет а сможешь помочь с вопросом:
А как обращятся к методам из инспектора
Например я сделал условие и при этом условие будет Visible из инспектора включатся
Если мышью навести на свойство в инспекторе, то во всплывающем окне будет видно название свойства в коде. В данном случае оно так и называется visible. Выставить его в true или false
@@frontend-pashtet спасибо, помог👍
У меня вопрос.....
А как сделать игру как Getting Over it ?
Я имею ввиду , как этот персонаж из этой игры используя палку перемещается ?
Ну так какие-то игрища с физикой. Перемещение с помощью палки не выглядит физически достоверным, так что, придётся что-то костылить вокруг физического движка
@@frontend-pashtet А ты можешь сделать подобную игру ?)))
@@lol-et1fz может и могу технически, но вряд ли когда буду. Мне просто другие игры по душе.
@@frontend-pashtet Ясно.....
А Даздраперма почему в состав гонки не вошла?:)
Допинг контроль не прошла)
всё очень быстро.приходилось перематывать несколько раз.))) хотя без воды это плюс.
Понимаю. Сложно нащупать баланс скорости. Приоритет был как раз на информацию по существу. Спасибо, что отписал фидбэк.
как сделать эффект кувырка красивого ,не могу понять как это анимировать
Сори, мои художественные навыки не позволяют пока давать какие-то дельные советы по этой теме =(
@@frontend-pashtet я начал изучать юнити и с# а сильно ли различается механика от твоего движка , почекал твои видео довольно легкий функционал ,чтото есть в нем прикольное)
@@Hawk6895 дело говоришь. Есть что-то в Godot. Легкий (менее 100мб), весь движок - один файл, gdscript (язык внутренний) сильно проще C#. Но и недостатки тоже есть. Стоит попробовать.
Что делать если текстура 3д объекта размытая?
Нужно изменить фильтрацию текстур на Nearest. Можно как в blender, так и godot это сделать, отредактировав материал
На такие вопросы проще отвечать в discord. Так что, если будут еще вопросы, заходи
Го такой видос про скрипты
Обязательно будет. Будет вообще серия таких видосов про различные фишки Godot.
я поставил все деньги на тракторину и победил!🎉
😊
Как сделать рывок для игрока
Примерно также как и прыжок, но по горизонтали. Можешь взять код прыжка и изменить его направлние
О моём перерождении в слизь)
я в годот всё еще путаю сцены-сцены со сценами-префабами
я понимаю что это одно и тоже в годоте
но надо как то разделить понятия)
не понимал зачем наследовать сцену пока не посмотрел первые 30сек
Кто же использует RigidBody для слизней. В доках Godot чётко описано, что если надо реализовывать кастомное движение, то используешь KinematicBody. А RigidBody используешь, для вещей типа ящиков и прочей такой ереси.
Тот, кто делает урок про наследование сцен
Капец, я про наследование сцен вообще не слышал
Мощная штука. Я когда узнал, то мне сильно проще стало организовывать код. А вот когда выйдет видос про наследование скриптов, то совместно с наследованием сцен можно будет такое творить. Магия, короче) Спасибо за комментарий, кстати!
@@frontend-pashtet незачто. А я до сих пор чтобы сделать оружие использовал наследование скриптов ,но приходилось заново создавать сцену, копировать туда ноды,добавлять базовый скрипт... а так намного проще получается
Я гоблин!😂
Префабы….
Они самые =)
Я слизь кста
Я тоже
Прикольно! А давно ты такой?