Попробовал таким образом реализовать последовательность действий в своей игре - прикольно получилось, выкинул много кода, оставшийся код стал более структурированным. Огромнейшая благодарность за этот урок!
Забросил копаться в годо ещё год назад, но продолжаю следить и смотреть твои видосики, которые от раза к разу всё больше толкают снова залезть в движок. Очешуенный контент. Господи, храни таких людей!
Супер качественный контент. Доступно и просто. Купил курсы на stepik, чтобы поддержать автора. Те знания, которые он просто раздаёт - стоят значительно больше.
Паштет в футболке со знаками Godot Класс... Эксперименты со сигналом выглядят интересно. Надо будет потом тоже провести такие эксперименты в Godot. Ролик как всегда крут на все 3 П - Просто, Понятно, Прикольно. (4-ая П - Паштетно ;-) )
можно я переподытожу, как я в конспекте написал: AWAIT - Смысл и польза эвэйта только тогда когда ожидаемое завершение уже заранее известно и запланированно, по сути это резиновый таймер. Избавляет от нагромождения коннектов и обычных таймеров с проверками. SIGNAL - Подписка на событие и ожидание. Стоит использовать для закулисного асинхронного ожидания нужного момента который произойдёт в случайное время.
Контент пушка, продолжай! P.s.А как ты на macos заставил hyperx микрофон гореть одним цветом? Потому что я нигде тулзу не нашел. Для Рейзер например на гитхабе есть решение
Привет. Спасибо за поздравления. Я очень рад:) И еще рад, что тебе помог мой стрим. Это очень классно. Насчет котика, думаю, что продолжать не буду. Я же продолжал его делать. Даже сделал катсцену и второй уровень. Но в итоге увяз в геймдизайне. Там столько всего придумывать надо, а я в платформерах не особо разбираюсь. Шарю только в классических с NES, Sega. Но они слишком старые и простые. Так что, я просто достиг тупика и переключился на другую игру. Оказалось, что сделать интересный платформер очень сложно(
Классные видео у тебя, огромное спасибо тебе! Было бы классно если бы появилось видео про подключение и вызов сторонних API, написанных на JAVA/Kotlin. Никак не могу разобраться как подключить монетизацию рустора (плагинов на годо нет, а с java проблемы)
@@frontend-pashtet хочу взять, инфа на курсе актуальна с версией движка ? Я просто автоматизатор тестирования, хочу для себя вкатиться в геймдев. Когда-то на Юнити делал игру. Но наткнулся на Годо… и мне понравился, особенно ГДскрипт
Можете подсказать пожалуйста. У меня например есть сцена с картой, где игрок и дверь. Мне нужно сделать, чтобы когда игрок подходил к двери, появлялась сцена с кнопкой которая при нажатии меняет сцену с закрытой дверью на открытую и наоборот. Как это сделать? Еще вопрос, как сделать, чтобы area2d не видела тайлмапы? А то кроме входа игрока в арену, она включается при запуске сцены, потому что возле нее тайлмапы
Фнаф делаешь?) Насчет первой части вопроса - это очень много писать, как делать. Тут надо разбить задачу на подзадачи и каждую по отдельности решить в том порядке, как ты расписал. Насчет второго вопсроса про area2d. Тебе нужны маски коллизий, чтобы area детектила только те объекты, которые нужны. Вот тут я делал урок про маски ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-POKoi2HyUuE.html В дискорде проше такое обсуждать. Заходи discord.gg/mswNVD2M98
Мало ли кто откликнется. Пытаюсь понять как работать с GDScript, получается хреново. Есть проблема: Делаю меню по гайду из GD3, сам сижу на GD4. Нужно прописать 4 аргумента в connect, но отладчик орёт что я могу вставить только 3 (Too many arguments for connect() call. Expected at most 3, but received 4. Вот код: button.connect("pressed", self, "on_Button_pressed", [button.scene_to_load]) Что GDScript от меня хочет ?
Аналогичная конструкция в 4ке может выглядеть вот так: button.pressed.connect(func(): on_Button_pressed(button.scene_to_load)) И заходи к нам в дискорд. Там с таким помогаем discord.gg/mswNVD2M98
@@frontend-pashtet Спасибо большое, подписался, починил, вступил. Кстати, сколько ты уже варишься в Godot ? У тебя серьёзный скилл, а я не могу пока что даже прыжок самостоятельно прописать, сижу ohuewaю
@@MaxKrai23 привет. Уже 3 года. Но у меня большой опыт программирования, так что, мне проще было начать с gdscript и документацией к движку. Хотя, по началу я все делал по урокам. Скилл придет. Продолжай :)
@@frontend-pashtet Внушает надежду. Перешагнул первые сто часов, начну отсматривать твои видео, пробовать отходить потихоньку от туториалов. Спасибо за ответ, удачи с каналом, не забрасывай, комьюнити необходим такой контент
Какая-то путаница. Почему асинхронное программирование называется "асинхронным"? Синхронность это ведь одновременное выполнение нескольких процессов. По смыслу "синхронное программирование" как раз наоборот должно называться "асинхронным программированием" и наоборот.
Привет. Какого-то конкретного скрипта готового не существует. Тебе придется научиться программировать и создавать скрипты самостоятельно. Можешь посмотреть уроки по написанию скриптов на gdscript на этом канале . Еще можешь зайти к нам в дискорд, там помогут разобраться discord.gg/tJxdsvHtBX
@@frontend-pashtet а на русском есть? Просто я выучил C# недавно и не понимаю как можно с помощью кода который делает ОГРОМНЫЕ вычисления, но по итогу просто выводит на консоль буквы и цифры начать взаимодействовать с объектами, колизей, узлами, сценами и так далее... как мне обращаться к объекту на сцене? как мне сказать кодом, что я хочу изменить именно его "вектор" движения,чтобы он двигался... (((
@@Buterbrod404 конкретно этой страницы на русском нет. Придется на английском. На твои вопросы можно найти ответы в документации docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/index.html Но там тоже английский. Как вариант, можешь попробовать gdscript. Он очень простой. В разы проще C#. Я делал по нему серию уроков. Со знанием шарпа будет просто ru-vid.com/group/PLyEcT2jkDfZI8MBQEnZeAt5N8LtiKTiSK
Можно отсюда начать, Это стрим по разработке платформера с нуля ru-vid.comHFxayy5Jb2Y Если любишь читать, то можно начать с гайда на офф сайте движка (есть на русском) docs.godotengine.org/en/stable/getting_started/introduction/index.html
@@frontend-pashtet я к тому что не стоит его делать (вырезать задник, то бишь). Без ахуенного света, очень контрастного качественного задника - оно ужасно портит картинку. Лучше с любым задником вставлять, пусть и ценой увеличенной области перекрытия контента.
@@pudgiest_hedgecock ну, не знаю. Мне лично не нравятся рандомные бытовые фоны в кадре. Конечно, если бы у меня была на фоне какая-то красота, то я бы на ее фоне всё отснял. В общем, меня устраивает, как получилось. Можно улучшить кое что, но в целом ок
Привет, помоги пожалуйста, как мне сделать так, чтобы спрайт персонажа смотрел в сторону направления движения и сохранял положение, когда останавливаешся?
Привет ) Хотел попросить у тебя помощь (и в твоём дискорде мне никто не смог мне помочь) Я уже около месяца страдаю в ней и мой персонаж начал взбираться по лестнице , но при одном нажатии на UP персонаж не останавливается пока я не уберу кнопку с Ctrl (но если я отпущу кнопку Ctrl то персонаж упадёт с лестницы). Я хочу чтобы персонаж взбирался на определённое количество пикселей и останавливался в ожидании моего нажатия на кнопку UP или Down : Я добавил одну Area2D(в левл) и в ней сигналы на проверку входа групп кализий персонажа, и этих каллизий 4 и каждая с группой ( head_on_ladder | body_on_ladder | legs_on_ladder | on_ladder ). on_ladder для отключения GRAVITY персонажу (чтобы он мог взбираться и на него НЕ действовала гравитация) : if Input.is_action_pressed("Control") and on_ladder: velocity.x = 0 GRAVITY = 0 if head_on_ladder and body_on_ladder and legs_on_ladder: if Input.is_action_just_pressed("UP"): velocity.y = -100 elif Input.is_action_just_pressed("Down"): velocity.y = 100 # Этот код предназначен для конечного взбирания на платформу...... elif not head_on_ladder and body_on_ladder and legs_on_ladder and on_ladder: velocity.y = -200 else: GRAVITY = 25 velocity.y += GRAVITY Помоги мне пожалуйста как сможешь Если-что, я хотел как в этом видео: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-H_n30_A7nWg.html
Привет. Пока есть только плейлист по gdscript. Летом выйдет большой курс по созданию мобильной игры на Godot 4. Там будет много материала по Godot Вот ссылка на плейлист ru-vid.com/group/PLyEcT2jkDfZI8MBQEnZeAt5N8LtiKTiSK
@@frontend-pashtet да я ознакомился со всем твоим творчеством. Всё таки не иронично можно сказать, что у тебя самая лучшая подача информации из всего ру сегмента ютуба) Но если возвращаться к сути, то на практике с чтение доки вроде как вполне удаётся, ибо база английского имеется, но периодически понимание самих методов и функций отсутствует за неимением опыта. В итоге получается, что осознание доки лежит через огромную кучу практики проб и ошибок, думаю мат частью это уже не исправить)
@@Moonlight-wv4op спасибо за такую высокую оценку. Очень приятно. Прям вообще. Думаю, ты прав насчёт опыта, проб и ошибок. Со временем понимание придёт.
Спасибо большое. За 20 минут обьяснил то что я пытался найти в течении 2х дней в документации и форумах. Я английский знаю, но не на таком хорошем уровне чтобы понимать все 100% так что парился я долго, ты просто выручил! Сразу лайк и подписка.
Можешь объяснить, в годо есть плеер анимаций, так в нем есть все то что ты сделал в фрагменте await, там даже есть вызовы функций и ещё много много всего, тоесть даже место этих строчек "короткого скрипта" можно обойтись только функциями где будет.. Хм ну например какие то вычесления и тд, а все остальное делать в плеере место кода. Влияет ли это на производительность или ещё что? Как лучше писать код с куча эветами или просто в анимации все указать?
Если твоя задача решается через animationPlayer и тебе так удобно, делай через него. Не думаю, что будут какие-то сложности с производительностью. Но далеко не все задачи можно решить через AnimationPlayer. Код предоставляет больше гибкости. Например, анимировать движение пули в произвольном направлении и дожидаться момента попадания как в примере из видео можно только через код.
@@frontend-pashtet да, а вот смерть врага с возгласом и всплыввющим текстом наверное лучше анимировать, при этом можно даже систематизировать надпись и звуки под разных врагов не меняя их в анимации
огонь. Ранее у меня был опыт в программировании на древнючих языках и там нужно было все чистить за собой из-за ошибок памяти. Нужно ли в годотскрипте убивать сигнал, связанный с объектом, который удален или поставлен в очередь удаления?
На сколько мне известно, нет. Убивать сигнал ручками не надо. Подозреваю, что для сигнала используется паттерн Observer. И когда сущность удаляется, то все подписчики разом отписываются.
Если тебе необходимо, чтобы сигнал отработал только один раз, то это вот тут объяснено ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-hYivPQeF8t4.html Есть и другой способ, но он хуже. Можно выставить булевую переменную и при входе выставлять ее в true. А потом проверять, выставлена ли она в true и выходить из функции. Но лучше отписаться от сигнала. В дискорде проще такие вопросы обсуждать. Заходи к нам discord.gg/eBDYh6ss
Сложно сказать так. Нужно проблему поконкретней описать. Какие ошибки? Сам откладываю настройку всей этой джава фигни на маке. Делаю билды под виндой после того, как раз настроил. Такое проще в дискорде обсуждать. Можешь там написать, попробуем помочь.
Подскажите как сделать поведение персонажа как в игре stay out(stalker online). Под поведением я подрузомеваю например наклон персонажа при прицеливании. Тоесть когда я вожу мышкой вовремя прицеливания. Это както связано с костями? Просто не нашёл нормально инфы по этой теме.
Я уже было занес руку для сочного фейспалма, когда началась эта каша с дисконнектами, биндами и дополнительными методами, но паштет успел спасти мое лицо применив очевидный флаг one_shot 😌. Кстати, эти флаги уже пронумерованы побитно, так что нет необходимости в битовом сложении, достаточно обычного арифметического. Как было сказано в видео, использование асинхронного выполнения кода потенциально опасно. В данном примере если выстрелить в скелета еще раз в момент проигрывания эпической смерти, это приведет к ошибке выполнения второго queue_free(), так как объект к тому моменту уже будет уничтожен первым queue_free(). Ну и опечатка в названии ролика: пропущена буква "c" в "GDScript"
Ахах. С disconnect вообще жесткая дичь получилась. Мне уже сказали, что я и с bind накосячил (он с конца биндит). Кстати, на флаги я посмотрел и подумал, что обычно сложение должно прокатить, но решил не выпендриваться и сделать все по классике. Жаль я не додумался до второго выстрела в скелета. Получился бы хороший пример опасности асинхронщины.
Метод move_and_slide доступен только у определённого узла/класса. CharacterBody для Godot4. KinematicBody для Godot3. Лучше такие вопросы в Discord задавать. Ссылка в описании есть.
Привет! помню ты упоминал на одном из стримов, что свет и тени в годот 2d очень ресурсоёмки. Я столкнулся с этой проблемой и не знаю как решить. буду благодарен за подсказку
В Godot 3 свет имеет смысл использовать только в десктопных играх. Тут по сути ничего не сделать. В мобилках и HTML5 он слишком тяжелый. Тут только уменьшать количество источников света. В Godot 4 я еще свет не тестил, но там такой проблемы быть не должно. Но Godot 4 еще не готов для HTML5 игр, например. Не знаю какая у тебя игра, поэтому все варианты расписал.