После 7 урока зашёл сюда. И вроде микрофон поменялся... Или звук стал лучше... Потом я офигел от того, что видео час идёт. А потом обрадовался, что есть таймкоды. Видно, что контент становится лучше!
Очень очень нужная инфа, особенно сейчас. Считаю многие сейчас с Unity побегут и Godot довольно заманчивая альтернатива. И такие уроки сейчас как никогда кстати. Спасибо.
Спасибо за курсы! Все пролайкал!) Правда у меня после смерти главного героя вылетает окно с игрой, но это походу я где-то накосячил😅теперь буду пол дня думать"просчитался, но где? "😄 Ты реально открыл для меня этот удивительный мир❤
Спасибо за отзыв друг! Без косяков вообще ничему не научишься, пока сам все не перелопатишь разбираться в коде не начнешь) так что главное не бросай, желаю чтобы все у тебя получилось! 👍
Ты молодец огромный, дай Бог, чтоб твоих лайков было за твой труд на 10000...000 больше! Все доступно и понятно, все работает исправно идя по шагам твоих уроков, не смотря на то, что пишу на C#. Здоровья тебе Добрый Человек;)
@@GameCrafter_GD Действительно качественный материал, я до этого пытался вникнуть в разработку игр, и Godot очень дружелюбный в этом плане для новичков. По 3D будет курс?
Отличный контент. Не буду особо комментировать, так как почти все замечания будут к кодстайлу и неймингу, а переключение состояний я вообще сделал по-своему. Но хочу обратить внимание на важное. 1. Если используются инамы, как в смене дня и ночи, то завязываться потом на циферки совсем не правильно. Для цикличной смены состояния достаточно было взять тот же match, перебрать все возможные состояния и переключать state в нужное, используя значения инама, а не голые цифры. И выглядит оно понятнее. 2. Мне кажется стоит стремиться снижать зависимость кода от настроек в редакторе. Например, начальное значение источника света 0.95 прописано в редакторе и оно же дублируется в коде. Интервал срабатывания таймера дня и ночи тоже задан и редакторе, и в коде. Нужно стремиться чтобы значение было в одном месте и не надо было потом помнить, в скольки местах его надо поменять чтобы оно работало правильно. От себя - я сделал включение фонаря магазина не параллельно со сменой дня, а последовательно. Темнеет, темнеет, ночь и чик, сразу загорелся фонарь. Светлеет, светлеет, день и раз, потух фонарь.
Очень крутые обучалки! Искал лучший движок для себя,учился по юнити и анреал енджин,но так ничего не понял.А годот мне сразу стал понятней,спасибо,что есть такие понятные уроки!
Привет, ты на 1:09:25 пишешь такой код: if state < 3... Можно сделать получше) state %= 4. А так за уроки огромное спасибо, видно что автор трудиться) Желаю всего самого лучшего)
Небольшое замечание. Чтобы не плодить разные функции состояний, отличающиеся только какими-то параметрами. Можете создать общую функцию, например func day_state(energy) и передавать в неё эти параметры, в данном случае energy. Тогда внутри функции, нужно будет заменить этот параметр на передаваемый tween.tween_property(light, "energy", energy, 20). Тогда process будет выглядеть следующим образом func _process(delta): match state: MORNING: day_state(0.2) EVENING: day_state(0.95) Таким образом мы используем принцип DRY и наш код более чистый и понятный. Решение не универсальное, но в большинстве случаев подходит.
@@GameCrafter_GDЕщё заметил, что в атаке2 и в атаке3 не обязательно ждать завершения анимации, чтобы перейти к состоянию MOVE, потому что без этих двух строчек и так всё работает. Ну и ещё :) Не обязательно в условиях писать что то типа этого: if combo==true, можно просто писать if combo, т.к. это подразумевает, что условие истинно. И противоположное: if combo==false можно просто писать if !combo. Это на любителя :) И, кстати, таким образом можно создать простейший переключатель в одну строчку. К примеру строка !combo при обращении к ней будет переключать переменную combo на противоположную: был true станет false, был false станет true.
@@mrdixioner Спасибо за конструктив, по поводу комбо атак и правда работает, только не пойму почему стейт сам переходит на MOVE) а насчет остального я в курсе, просто думаю что для начинающих так немного понятнее что и как работает
@@GameCrafter_GD подскажи пожалуйста, дошёл до 40 минуты, и почему-то не нажимается кнопка блока, может ли это быть связано с тем, что у меня анимация всего из 1 кадра?
Интересный момент на 39:37 если во время ускоренного бега поставить блок то как будто ускорено скользит с блоком наперевес))) можно даже отпустить всё кроме блока) Вопрос! Я сделал свет на оба фонаря и соответственно мне пришлось делать две переменные под оба источника света. Но я так подумал а что если у нас будет много источников света на всей карте. Под каждый писать это гемор да код будет выглядеть как тетрадка первоклашки - одна и так же строка 20 раз. Должен быть способ воздействовать сразу на все источники света.
Не вырезай моменты. Вот например: ты вместо else на 40 минуте написал elif, а потом вырезал как исправил, новички запутаются) И еще ты не показал как у тебя анимация блока перестал быть зацикленной. Я решил это вырубив повтор в animatedSprite и включив воспроизведение до последнего фрейма в animationPlayer. И еще, зря ты убрал музыку, ламповая атмосфера была. А так спасибо большое за уроки, интересно их проходить )
@@xandermassonov3731 планирую, просто со временем сейчас немного туго) но проект по любому до релиза доведу, хоть он и будет скорее только для образовательных целей
Почему у меня не работает DirectionalLight2D, Я все сделал как автор , но у меня ничего не поменялось не цвет самого фона и т.д., что делать по могите пожалуйста!
1: Классный урок! Только, что то мне подсказывает, что attack_freeze() не работает как надо, cd стоит только после основной атаки, а комбо все так же можно абузить через спам. Add track стоит где нужно, код прописан верно. 2: Еще от себя пытался разными путями увеличить скорость скольжения и добавить ему cd, но во всех случаях все работает, за исключением того, что во время скольжения можно менять направление движения, сначала была мысль передавать в функцию разово direction, но из за принципа работы enum это невозможно...
Спасибо) 1. В последующих уроках я добавил выносливость, и собираюсь наказывать за спам её расходом 2. Можно добавить дополнительное условие например if state != slide там где у тебя смена направления
Здравствуйте, я хочу что-бы мой персонаж бил мечом еще и при движении, так же хочется сделать скольжение с другой кнопкой, прошу помочь. Курс отличный)
@@НазарШибков Короче надо заново накинуть скрипт(значок свитка на Player) Короче кликаешь на Player затем свиток с зеленым плюсиком (выше него), CTRl+S потом и заново вызывай добавление метода. Мне помогло
у меня ошибка, когда нажимаю ПКМ(я ее так настроил) у меня во время движения наинает работать анимация слайда и бесконечно повтрояется + игрок бесконечно движется в последнюю стророну которую смотришь, у него там когда он еще не поставил slide_state() на 41:36 там он у него сам ходил у меня так. ПЖ ПОМОГИТЕ ВСЕ ПРОЕРИЛ НЕ ПОНИМАЮ
Ошибка может заключаться в чем угодно либо скриптах либо в самой анимация либо еще где, поэтому лучше всего зайти в группу телеграмм и отправить скрины туда
Привет, у меня проблема. Что делать, если анимация начинает бесконечный цикл воспроизведения, и программа ждет ее прекращения? Ищу ошибку, не могу найти. Помоги, пожалуйста. Сейчас буду пересматривать видео, искать проблему
Скорее всего в animatedsprite2d зациклена анимация, а в функции стоит await anim.animation_finished И в итоге анимация не имеет конца и в другой state перейти не может
попробуй в каждом parallax layer, во вкладке motion, значение scale y поставить на 1, и сделай так чтобы точка parallax layer совпадала с левым верхним углом background layer
Привет, у тебя топовые уроки, по ним игру делаю, но проблема что один раз нажимаю на кнопку атаки всё хорошо анимация 1 раз проигрывается, но стоит ещё раз нажать как у меня просто начинает бесконечно анимация атаки проигрываться? подскажи что не так
State машина тема, но я в неё внедрил ещё прыжок, но персонаж теперь не адекватно ведет себя. Может прыгнуть несколько раз. Хотя вызов состояния стоит в том случае, если персонаж на полу и один раз нажата кнопка прыжка func jump_state(): velocity.y = JUMP_VELOCITY anim.play("jump") await anim.animation_finished if velocity.y > 0: anim.play("fall") await anim.animation_finished state = MOVE Получится подсказать?
В коде ты привязал переход в move state по завершению анимации падения, и на мой взгляд это довольно проблематично так как анимация падения может завершиться слишком рано или поздно, я думаю что такие переходы лучше привязывать к состоянию игрока, как например is on floor
@@GameCrafter_GD Смотри, я вот сделал два состояния теперь Функции: func jump_state(): velocity.y = -400 anim.play("jump") state = MOVE func fall_sate(): animPlayer.play("fall") if is_on_floor(): state = MOVE Ну и состояние FALL вызывается из MOVE, только вот проблема в том, что он успевает перейти в состояние MOVE и сыграть анимацию MOVE А если из JUMP переходить сразу в FALL, то проигрывается сразу анимация FALL FALL вызывается из состояния MOVE в таком виде: if velocity.y > 0: state = FALL Чет уже мозг сломал) При том, если на месте прыгать - норм анимация. А если бежать при этом, то успевает в промежутке сыграть анимация ходьбы
@@GameCrafter_GD Проблема с проигрышем анимации решается, когда я добавляю await anim.animation_finished func jump_state(): velocity.y = -400 anim.play("jump") await anim.animation_finished state = MOVE Потому что из MOVE он сразу идет в FALL И у прыжка все норм играется, но почему то прыжок становится неадекватных размеров и отправляет игрока в космос. Если убрать строку await anim.animation_finished , то нормальнгого размера прыжок происходит
Круто все объясняется, даже я понял, подписался!) Только вопрос, надеюсь автор еще отвечает, есть ли какая-то возможность добавить прыжок? Точнее, прыжок я оставил, но теперь анимации удара, рывка и блока могут происходить и в воздухе. Добавлял velocity.y
Так бывает когда в функции в скобках указана delta а ниже delta ни разу не используется, просто нужно в скобках добавить _ перед delta, и это скорее не ошибка а предупреждение, они на процесс особо не влияют, но лучше все же их исправлять)
@@PHONKHOUSE228 только что нашел, в func combo1(): combo = true await бла бла бла combo = false Видимо он обрезал видео и мы не увидели как в первую строчку он поставил combo = true, или мы просто слепые
Дай бог канал станет очень популярным и GameCrafter продолжит нас радовать крутыми обучами.. Вот бы после этого курса, появился про 3D
Спасибо за добрые слова)) пока не решил какой проект будет следующим, но 3D точно будет
Этот канал развивается и я очень рад этому)
@@просточел-щ8ъ спасибо👍
@@GameCrafter_GD этот бы закончить
После 7 урока зашёл сюда. И вроде микрофон поменялся... Или звук стал лучше...
Потом я офигел от того, что видео час идёт.
А потом обрадовался, что есть таймкоды. Видно, что контент становится лучше!
Спасибо за отзывы!)
Большое спасибо! Очень полезные и понятные уроки!
Спасибо за отзыв! 🤝
Очень очень нужная инфа, особенно сейчас. Считаю многие сейчас с Unity побегут и Godot довольно заманчивая альтернатива. И такие уроки сейчас как никогда кстати. Спасибо.
Спасибо за отзывы!)
С юнити уже бегут, и при чём очень активно: кто в годо, кто в анрил, кто в GameMaker и в другие движки.
Спасибо за курсы! Все пролайкал!)
Правда у меня после смерти главного героя вылетает окно с игрой, но это походу я где-то накосячил😅теперь буду пол дня думать"просчитался, но где? "😄
Ты реально открыл для меня этот удивительный мир❤
Спасибо за отзыв друг! Без косяков вообще ничему не научишься, пока сам все не перелопатишь разбираться в коде не начнешь) так что главное не бросай, желаю чтобы все у тебя получилось! 👍
самый длинный урок вышел, но оч много полезного. Спасибо, от души 👍😀
Спасибо
только начал изучение godot и благодаря вашим видео многое стало понятно, спасибо большое
Очень рад что смог помочь)
Ты молодец огромный, дай Бог, чтоб твоих лайков было за твой труд на 10000...000 больше! Все доступно и понятно, все работает исправно идя по шагам твоих уроков, не смотря на то, что пишу на C#. Здоровья тебе Добрый Человек;)
Твои ролики дали мне большую мотивацию по воплощении моей мечты - создание своей игры! Спасибо! Обязательно досмотрю все уроки до конца.
В классе PoinLight2d я еще дополнительно изменил диапазон range, а именно layer min выставил в -1, теперь и фон (деревья) подсвечиваются от фонарей
Молодец, мужик, ты делаешь нужное дело!
Спасибо
Отличная серия уроков. Спасибо 👍
Спасибо)
Лучший курс по Godot из тех которые я смотрел ❤
Спасибо за отзыв!)
@@GameCrafter_GD Действительно качественный материал, я до этого пытался вникнуть в разработку игр, и Godot очень дружелюбный в этом плане для новичков. По 3D будет курс?
@@DnevnikMotocyklista в планах он есть)
Блин, автор ты просто молодец!
Ты просто открываешь огромные возможности в мир Godot! Спасибо огромное!
👍
Все довольно круто. Никогда так уроки не завлекали😊
Спасибо, я очень рад)
Отличный контент. Не буду особо комментировать, так как почти все замечания будут к кодстайлу и неймингу, а переключение состояний я вообще сделал по-своему. Но хочу обратить внимание на важное.
1. Если используются инамы, как в смене дня и ночи, то завязываться потом на циферки совсем не правильно. Для цикличной смены состояния достаточно было взять тот же match, перебрать все возможные состояния и переключать state в нужное, используя значения инама, а не голые цифры. И выглядит оно понятнее.
2. Мне кажется стоит стремиться снижать зависимость кода от настроек в редакторе. Например, начальное значение источника света 0.95 прописано в редакторе и оно же дублируется в коде. Интервал срабатывания таймера дня и ночи тоже задан и редакторе, и в коде. Нужно стремиться чтобы значение было в одном месте и не надо было потом помнить, в скольки местах его надо поменять чтобы оно работало правильно.
От себя - я сделал включение фонаря магазина не параллельно со сменой дня, а последовательно. Темнеет, темнеет, ночь и чик, сразу загорелся фонарь. Светлеет, светлеет, день и раз, потух фонарь.
Спасибо за конструктивные комментарии, век живи век учись)
Реально, курс очень полезен для начинающих. После этого курса уже можно создавать 2д игры. Большое спасибо!
Очень крутые обучалки!
Искал лучший движок для себя,учился по юнити и анреал енджин,но так ничего не понял.А годот мне сразу стал понятней,спасибо,что есть такие понятные уроки!
Спасибо! Очень рад что ролики понравились)
Крутые уроки! Было бы интересно посмотреть про мультиплеер в годот, но и так отлично :)
Спасибо за отзыв!) надеюсь когда нибудь доедем и до него
Лучший урок который я видел!❤ никто кроме тебя не смог научить меня на базу гд скрипта ты лучший🎉
самая последняя тема про пересвет. Очень сильно нужна была, не знал как такой баг исправить. очень помог спасибо!
Огромное спасибо за ещё одно видео из курса! Как всегда все максимально подробно и понятно!
Большое Спасибо, за новые уроки!!!
Парень спасибо тебе, только благодаря тебе смог начать свою игру)
Приятно видеть продолжение уроков!
Спасибо
Большое спасибо, вся серия роликов очень полезная
Спасибо 👍
Два дня заняло... Огонь! спасибо
Great demonstration of the state machine. Fun implementation of the day/night cycle. Thank you!
1:09:02
Можно было сделать так
state += 1
state = state % 4
Кстати отличный курс
Какой же балдёжный курс, спасибо большое, очень много полезного, и главное просто, доступно и понятно!
Автор, вы большой молодец! Курс просто супер!
Спасибо большое)
то что ты делаешь действительно помогает, спасибо
Очень увлекательно! А главное - четко и понятно!
Спасибо!
Спасибо большое спасибо за курс!
Спасибо за поддержку!
Привет, ты на 1:09:25 пишешь такой код: if state < 3... Можно сделать получше) state %= 4. А так за уроки огромное спасибо, видно что автор трудиться) Желаю всего самого лучшего)
спасибо огромнейшее !
Небольшое замечание.
Чтобы не плодить разные функции состояний, отличающиеся только какими-то параметрами. Можете создать общую функцию, например func day_state(energy) и передавать в неё эти параметры, в данном случае energy.
Тогда внутри функции, нужно будет заменить этот параметр на передаваемый tween.tween_property(light, "energy", energy, 20). Тогда process будет выглядеть следующим образом
func _process(delta):
match state:
MORNING:
day_state(0.2)
EVENING:
day_state(0.95)
Таким образом мы используем принцип DRY и наш код более чистый и понятный. Решение не универсальное, но в большинстве случаев подходит.
а pointLight можно устанавливать как 1-energy. тоже додумался так сделать, выглядит куда чище
ку, хорошо подаёшь материал, мне нравится, так держать+
Спасибо тебе! Все круто)
Спасибо)
офигенно!
Спасибо)
огонь! спасибо
Спасибо за отзыв!)
спасибо за видео!
Спасибо) Хороший туториал
Лучший👾
Спасибо 👍
Лучше всякого фильма! Я прям завис! Спасибо огромное!
Очень рад) спасибо вам!)
@@GameCrafter_GDЕщё заметил, что в атаке2 и в атаке3 не обязательно ждать завершения анимации, чтобы перейти к состоянию MOVE, потому что без этих двух строчек и так всё работает.
Ну и ещё :) Не обязательно в условиях писать что то типа этого: if combo==true, можно просто писать if combo, т.к. это подразумевает, что условие истинно. И противоположное: if combo==false можно просто писать if !combo. Это на любителя :) И, кстати, таким образом можно создать простейший переключатель в одну строчку. К примеру строка !combo при обращении к ней будет переключать переменную combo на противоположную: был true станет false, был false станет true.
@@mrdixioner Спасибо за конструктив, по поводу комбо атак и правда работает, только не пойму почему стейт сам переходит на MOVE) а насчет остального я в курсе, просто думаю что для начинающих так немного понятнее что и как работает
@@GameCrafter_GDСогласен, все эти сокращения только сбивают с толку.
@@GameCrafter_GD подскажи пожалуйста, дошёл до 40 минуты, и почему-то не нажимается кнопка блока, может ли это быть связано с тем, что у меня анимация всего из 1 кадра?
все еще помогает, спс бро
Автору видео большое спасибо, буквально за 8 уроков получил огромное количество знаний. Все лаконично и четко👍
Интересный момент на 39:37 если во время ускоренного бега поставить блок то как будто ускорено скользит с блоком наперевес))) можно даже отпустить всё кроме блока) Вопрос! Я сделал свет на оба фонаря и соответственно мне пришлось делать две переменные под оба источника света. Но я так подумал а что если у нас будет много источников света на всей карте. Под каждый писать это гемор да код будет выглядеть как тетрадка первоклашки - одна и так же строка 20 раз. Должен быть способ воздействовать сразу на все источники света.
Это очень круто
0:47 игра Kingdom
хах, я из 29.08 следующего года
Как можно оптимизировать освещение? (При изменении освещённости (день и ночь) с помощью tween сильно проседает FPS)
Я не знаю содержание всех уроков, но очень надеюсь, что есть урок насчет оптимизации, ну или будет
Смотря что именно ты имеешь ввиду под оптимизацией)
@@GameCrafter_GD ну тепа шо бы фепесе была больше
ахахах что тут оптимизировать?)@@DarkBanOne
😍😍😍😍
👍
Почему-то у меня нету метода combo1 в дорожке вызова функции нет (там вообще нет методов)
46:24 у меня не получается добавить функцию в анимацию и вообщем там нет раздела script methods
Просто в самой сцене персонажа создай скрипт и всё появится
поподробней пожалуйста напиши, а то я так и не понел@@braggp
А зачем писать combo == true? Можно просто combo написать, я с gdscript не знаком но думаю false проверяется через !combo
Не вырезай моменты. Вот например: ты вместо else на 40 минуте написал elif, а потом вырезал как исправил, новички запутаются)
И еще ты не показал как у тебя анимация блока перестал быть зацикленной. Я решил это вырубив повтор в animatedSprite и включив воспроизведение до последнего фрейма в animationPlayer. И еще, зря ты убрал музыку, ламповая атмосфера была. А так спасибо большое за уроки, интересно их проходить )
Спасибо за подробный отзыв)
@@GameCrafter_GD Планируешь ли ты делать 32 урок и дальше?)
@@xandermassonov3731 планирую, просто со временем сейчас немного туго) но проект по любому до релиза доведу, хоть он и будет скорее только для образовательных целей
@@GameCrafter_GD Круто, успехов)
Лучший! Спасибо. Кто если не ты???
Почему у меня не работает DirectionalLight2D, Я все сделал как автор , но у меня ничего не поменялось не цвет самого фона и т.д., что делать по могите пожалуйста!
Подскажите почему блок не работае, анимация не срабатывает?
Что делать если анимация скольжения постоянно повторяется и игрок бежит в одну сторону при нажатии на кнопку блока?
Нужно посмотреть, понять и исправить)) заходи в телегу и скрины скидывай
1: Классный урок! Только, что то мне подсказывает, что attack_freeze() не работает как надо, cd стоит только после основной атаки, а комбо все так же можно абузить через спам. Add track стоит где нужно, код прописан верно.
2: Еще от себя пытался разными путями увеличить скорость скольжения и добавить ему cd, но во всех случаях все работает, за исключением того, что во время скольжения можно менять направление движения, сначала была мысль передавать в функцию разово direction, но из за принципа работы enum это невозможно...
Спасибо) 1. В последующих уроках я добавил выносливость, и собираюсь наказывать за спам её расходом 2. Можно добавить дополнительное условие например if state != slide там где у тебя смена направления
Почему я добавил кнопку на атаку а когда нажимаю он пригает и бёт а не просто бёт
Помогите пожалуйста где найти эти картинки персонажа для новой анимации? Я просто в группе в ТГ не могу найти
Такой вопрос, а можно ли в godot для игры в 2d создавать cinematic?
Не пробовал, но думаю что проблем быть не должно, учитывая что в Animation player можно анимировать любой параметр любого нода
А почему для State Machine не используешь узел AnimationTree?
Хороший вопрос) в следующий раз буду
У меня не роботает атака ну типо там анимация не играет, что делать?
Здравствуйте, я хочу что-бы мой персонаж бил мечом еще и при движении, так же хочется сделать скольжение с другой кнопкой, прошу помочь. Курс отличный)
ты просто игру копируешь? лол
а как добавить прыжок теперь?
А почему там где match state:... Под каждым условием нельзя сразу писать действие, а создавать отдельные функции?
так красивее код будет и легче будет исправить баги
Что делать если персонаж проподает после "State Machine" ?
Броу, добавь нпс с диалогом пж
Привет, а что делать если у меня не находит функцию комбо1? Да и другие функции, даже нет, как у тебя, скриптов в начале выбора(46:28)
Тоже самое
@@НазарШибков Короче надо заново накинуть скрипт(значок свитка на Player)
Короче кликаешь на Player затем свиток с зеленым плюсиком (выше него), CTRl+S потом и заново вызывай добавление метода. Мне помогло
@@glanti2107 Спасибо! Но я проблему уже сам нашел)
@@НазарШибков Хотелось бы узнать как? Можешь поделиться?
@@ДмитрийКароль-ъ8у Привет, это уже давно было, но вроде у меня названия скриптов не совпадали в коде
❤
Спасибо
Что за заклинание на 36.55?
У меня почему-то атака срабатывает только если написать is_actoin_pressed, а из-за этого персонаж атакует пока нажата кнопка
Скинь скрин кода в телеграмм там посмотрим
@@GameCrafter_GD скинул
у меня ошибка, когда нажимаю ПКМ(я ее так настроил) у меня во время движения наинает работать анимация слайда и бесконечно повтрояется + игрок бесконечно движется в последнюю стророну которую смотришь, у него там когда он еще не поставил slide_state() на 41:36 там он у него сам ходил у меня так. ПЖ ПОМОГИТЕ ВСЕ ПРОЕРИЛ НЕ ПОНИМАЮ
Ошибка может заключаться в чем угодно либо скриптах либо в самой анимация либо еще где, поэтому лучше всего зайти в группу телеграмм и отправить скрины туда
в один момент я захотел сохранить видео нажал ctrl S, а потом понял что это так не работает))))
Привет, у меня проблема. Что делать, если анимация начинает бесконечный цикл воспроизведения, и программа ждет ее прекращения? Ищу ошибку, не могу найти. Помоги, пожалуйста.
Сейчас буду пересматривать видео, искать проблему
Скорее всего в animatedsprite2d зациклена анимация, а в функции стоит await anim.animation_finished
И в итоге анимация не имеет конца и в другой state перейти не может
Из за чего может быть проблема что direction равен нулю не смотря на то движется персонаж или нет
Много причин может быть, нужно на код смотреть, скинь скрины в телеграмм
47:30 комбо не работает, что делать?
У меня с бг проблема. Как только я меняю значение Skale на любое кроме 1. Когда игрок прыгает фон как-бы проседает. В чём может быть проблема?
попробуй в каждом parallax layer, во вкладке motion, значение scale y поставить на 1, и сделай так чтобы точка parallax layer совпадала с левым верхним углом background layer
мне помогло
спасибо тебе огромное
не работает комбо что делать?
Знающеи люди помогите пожалуйста я не могу найти текстуру для магазина( в гугл диске не нашёл и в описании под роликом тоже) где её можно взять?
у меня 4 версия годот, там может быть, вместо animPlayer AnimationPlayer?
animPlayer это переменная а animationPlayer нод
Привет у меня не получилось смена дня и ночи спасит ошибки помоги пж
сергио привет
Привет, у тебя топовые уроки, по ним игру делаю, но проблема что один раз нажимаю на кнопку атаки всё хорошо анимация 1 раз проигрывается, но стоит ещё раз нажать как у меня просто начинает бесконечно анимация атаки проигрываться? подскажи что не так
Спасибо за отзыв!) где-то в коде или в анимациях ошибся видать, скинь скрины с кодом в телегу
State машина тема, но я в неё внедрил ещё прыжок, но персонаж теперь не адекватно ведет себя. Может прыгнуть несколько раз. Хотя вызов состояния стоит в том случае, если персонаж на полу и один раз нажата кнопка прыжка
func jump_state():
velocity.y = JUMP_VELOCITY
anim.play("jump")
await anim.animation_finished
if velocity.y > 0:
anim.play("fall")
await anim.animation_finished
state = MOVE
Получится подсказать?
В коде ты привязал переход в move state по завершению анимации падения, и на мой взгляд это довольно проблематично так как анимация падения может завершиться слишком рано или поздно, я думаю что такие переходы лучше привязывать к состоянию игрока, как например is on floor
@@GameCrafter_GD
Смотри, я вот сделал два состояния теперь
Функции:
func jump_state():
velocity.y = -400
anim.play("jump")
state = MOVE
func fall_sate():
animPlayer.play("fall")
if is_on_floor():
state = MOVE
Ну и состояние FALL вызывается из MOVE, только вот проблема в том, что он успевает перейти в состояние MOVE и сыграть анимацию MOVE
А если из JUMP переходить сразу в FALL, то проигрывается сразу анимация FALL
FALL вызывается из состояния MOVE в таком виде:
if velocity.y > 0:
state = FALL
Чет уже мозг сломал)
При том, если на месте прыгать - норм анимация. А если бежать при этом, то успевает в промежутке сыграть анимация ходьбы
@@GameCrafter_GD При том в остальном, то у меня код как у тебя. И стоит же условие на проигрышь анимации ходьбы, что velocity.y == 0
@@GameCrafter_GD
Проблема с проигрышем анимации решается, когда я добавляю await anim.animation_finished
func jump_state():
velocity.y = -400
anim.play("jump")
await anim.animation_finished
state = MOVE
Потому что из MOVE он сразу идет в FALL
И у прыжка все норм играется, но почему то прыжок становится неадекватных размеров и отправляет игрока в космос.
Если убрать строку await anim.animation_finished , то нормальнгого размера прыжок происходит
@@GameCrafter_GD Бро, разобрался =()
на 5-32 у тебя BG летает над сценой, на 58-00 он уже стоит на полу, и я не уловил момент этот где меняется.
Можете помочь пожалуйста🙏
У меня почему-то кнопка Alt(Run) на право работает, а на лево не работает
Нужно видеть код, заходи в телеграмм группу и туда скрины с кодом и проблемой скидывай, так легче будет понять причину
У меня на маштабе фона ничево невышло
Круто все объясняется, даже я понял, подписался!) Только вопрос, надеюсь автор еще отвечает, есть ли какая-то возможность добавить прыжок? Точнее, прыжок я оставил, но теперь анимации удара, рывка и блока могут происходить и в воздухе. Добавлял velocity.y
if velocity.y == 0
@@Калушонок шикарно, работает! Спасибо!
у меня ошибка дельта пишет что надо так _delta
Так бывает когда в функции в скобках указана delta а ниже delta ни разу не используется, просто нужно в скобках добавить _ перед delta, и это скорее не ошибка а предупреждение, они на процесс особо не влияют, но лучше все же их исправлять)
голос как у ии?
У меня?
Анимация бега не работает но бежит он быстрее в чем проблема помоги пожалуйста
Надо смотреть код, кидай скрины в телеграмм
спасибо огромное но остался один вопрос как экспортирывать проект
До экспорта тоже дойдем в свое время)
Спасибо
Сборку игры на Андроид бы и на Винду
@@sassas1433 в планах есть)
Не получается комбо. Несколько раз переписывал, но комбо просто не работает даже не выдавая ошибок.
Смог решить?
@@0nec нет
@@PHONKHOUSE228 только что нашел, в
func combo1():
combo = true
await бла бла бла
combo = false
Видимо он обрезал видео и мы не увидели как в первую строчку он поставил combo = true, или мы просто слепые
@@0nec спасибо
Когда Я нвжимаю блоск игра вазврашаётця меню