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