"Быстрый старт с Godot: Создание игр с удовольствием! 🎮🚀 Преодолейте начальные барьеры и начните свою игровую историю. Присоединяйтесь к нам, чтобы воплотить свои идеи в реальность!" Группа в Telegram: t.me/+6zyiuofwIhM4NGNl
Спасибо тебе большое, долго выбирал между Юнити и годо, но благодаря тебе я определился с выбором, так как ты единственный кто +- нормально объяснил, что к чему
Тоже такая же история 😁единственный видео туториал где у меня всё получается и я иду вперёд, я в этом Unity три часа пытался заставить треугольник прыгать и бегать, а тут уже на 6 уроке
В смене направления можно убить сразу двух зайцев, сделав проверку в направлении, и заодно это избавит от того, что после поворота персонаж снова возвращается в положение "направо": if direction: velocity.x = direction * SPEED if direction==1: anim.flip_h=false else: anim.flip_h=true anim.play("Run") Или сделав условие выбора направления в одну строку тернарным оператором: anim.flip_h=false if direction==1 else true, т.е. отзеркаливание всегда будет отключено до той поры, пока мы не сменим направление на лево. Огромное спасибо за уроки!!!
Да, человеку далёкому от программирования становится трудновато) наверное придётся вести конспект, дабы быстрее запомнить работу со скриптами. Благодарю за урок!
Не переживай) я и сам далеко не программист) можно просто изучать только те темы которые нужны для текущей задачи, так и изучишь все без боли и страданий 👍
Уроки шикарные, максимально информативно рассказываешь) Единственное, не могу разобраться с анимацией. В скрипте все также как в видео, но анимация бега тупо не подрубается. Перс как бегал с idle анимацией, так и бегает. Уже все перепробовал, но разобраться не получилось(
А как сделать так чтоб сначала одна анимация за тем другая ( тойсть при нажатии движения сначала проигрывалась сначала стартующя анимация а потом уже и постоянная а при прекращении движения останавливающая а потом бездествие) или чтоб через время бездействия проигрывалась анимация ждущего персонажа!
также как у автора объявил работу с аним спрайтом.. он говорит что так нельзя.. пишите вот команду как у автора спереди написать.. но у написал. и это система считает ошибкой А.. он так будет ругаться.. Если вы забыли указать какая анимация идет по умолчанию.
тут же наверно неплох добавить анимацию приземления. С спрайтами +- все понятно. А вот с условием проигрывания не очень. В какой момент ее нужно проигрывать как это условие правильно записать ? Брать какое-то конкретно значение когда велосити по Y равно какое-то небольшое значение отличное от 0 ... или нужно как-то указывать переход по значению велосити Y перед тем как оно стало 0 ... Наверно как-то сумбурно объясняю, ну уж как могу :)
Суть уловил вроде) с анимацией приземления немного запарка, для таких вещей в godot есть animation tree, либо можно использовать state machine, в этом курсе про animation tree я не рассказывал, но в следующем проекте точно буду. Через state machine, можно создать отдельный state для приземления, и включать его после анимации падения.
Чудесный урок спасибо огромное😊😊но у меня есть одна проблема я вставил шаблон движения но когда запустил он не двигался(у меня мобильная версстя годота)?
Спасибо за отзыв) вообще я бы не рекомендовал разрабатывать игру на телефоне) дешевенький комп будет гораздо удобнее. Но это уже тебе выбирать. Стандартное управление для игрока заточено под клаву. Тебе чтобы на телефоне тестировать нужны кнопки для тач скрина. В одном из роликов мы их добавляем
время 15:10 а если при писвании в скрипте не появляется из всплывающего меню flip_h, а если даже прописать то не работает он , персонаж бежит спиной,,,,,в чем может быть дело? делал все досканально как вы, 1000 раз перепроверил все, не работает(
спасибо за урок, но у меня проблема, сделал как в видео, но в камере тайл сет (как картинка с колизиями все нормально) прилеплен к камере, а не остается на своем месте
на A,D удобнее, чем на стрелках var direction = 0 if Input.is_key_pressed(KEY_A) : direction = -1 elif Input.is_key_pressed(KEY_D) : direction = 1 else : direction = 0
Привет, повторил код полностью как у тебя. Но вылезла проблема с анимацией бега, она начинается с задержкой и она очень быстрая, но бывают моменты когда долго бежишь анимация становится нормальной на короткий момент.
Привет 👋 судя по комменту создается впечатление что проблема не в коде а скорее в настройках анимации, в любом случае тебе лучше в телеграмме скрины с проблемой скинуть, иначе не понятно
Окей вопросс у меня на моменте где ты перетаскиваешь Анимейтед спрайт 2д не получается повторить за тобой у меня вылазит ошибка что невозможно перетащить узлы не использующиеся в этой сцене а у меня все так как у тебя 😮💨🌀
Скинь мне скрин экрана со скриптом и чтоб узлы видно было я гляну) если все повторял должно работать) куда тебе удобнее почту могу дать, ватсап или телегу?
Выстроили сцену как в обучении, земля на уровне корней BG. Но когда запускается дебаг режим, земля оказывается по середине стволов фона. Это произошло после включения Zoom на камере. Подскажите куда копать? Как во время дебага увидеть уровень земли на уровне корней деревьев фона?
Ребят, подскажите кто-нибудь пожалуйста, у меня проблема что персонаж всё равно размывается немного при движении, хотя поставил пункт Physics как автор в видео. У кого-то была такая проблема?
Здраствуйте, у меня вышла вот такая ошибка - (Невозможно перетащить узлы, потому что скрипт 'player.gd(*)' не используется в этой сцене.) не могу понять каким образом эта ошибка вообще вышла ведь я все редактирую в сцене где персонаж и был создан :( буду заранее благодарна за ответ ( •̀ ω •́ )✧
@@theworldofmurderers1195 заходите в телеграмм группу, и туда скиньте скрины чтоб было видно какой скрипт у вас открыт и из какой сцены вы берете нод, иначе долго можно разбираться)
Иерархией в древе сцен можно пользоваться как слоями в фотошопе, только здесь чем ниже в списке тем ближе к зрителю, можно использовать как альтернативный способ расстановки
@@GameCrafter_GD хм, аналогию понял. Тогда другой вопрос ) скажем хочу сделать так чтобы окружение ( фоновое изображение) было как на заднем плане с эффектом параллакса так и на переднем, ну условные кусты, как в LIMBO например или в lille nightmares, Songs of Armor etc. То для реализации подобного эффекта нужно просто создать еще 1 сцену для переднего плана и разместить ее в самом низу в дереве сцен ?
Помогите мне пожалуйста у меня проблема с кодом. Там где if velosity.y == 0 :...... То оно мне говорит что велосити неправильно, хотя у нас версии одинаковые и код. Помогите мне пожалуйста я не могу понять что не так
Когда пытаюсь перенсти назваение в код, пишет "Невозможно перетащить узлы, потому что скрипт 'player.gd' не используется в этой сцене.". Делал все так же с Анимацией но не получается сделать flip_h. Что не так?
Там важно какой открыт скрипт и какая сцена, если допустим открыт скрипт моба и сцена level, то если данного моба нет на сцене в него с этой сцены ничего не перенести
Anim это всего лишь название переменной которую мы сами выбираем как называть, скорее всего ты не создал её в начале скрипта или возможно создал её внутри другой функции или создал с опечаткой
ПЖ помогите там где подключаем анимацию бега, я все как на ролике делаю а если стрелки нажать хоть 1 раз игра крашится и пишет Attempt to call 'play' in base 'null instance' on a null instance @GameCrafter_GD СТОЙТЕ УЖЕ ПОФИКСИЛ, СПАСИБО!
@@fodiandzeromc9954 когда мы пишем равно 🟰 в условии, то есть после if, мы указываем == как бы подтверждая что оно равно, а уже когда приравниваем переменную к какому либо значению пишем 🟰 один раз, как то так
Тоже делал все по гайду, коллизия работает. Либо не подогнал collision2d под размер персонажа, либо рисовал тайлами без коллизии. Ещё может быть, collision layer разный стоит
спустя кучу времени и видео с канала Code with Max я нашел решение, вот: if direction == -1: $AnimatedSprite2D.set_flip_h(true) elif direction == 1: $AnimatedSprite2D.set_flip_h(false)
я не могу повернуть персонажа, написав код где animatedsprite2d.flip_h = true оно либо не работает либо выдаёт ошибку expected indented block after "if" block
if direction: velocity.x = direction * SPEED anim.play("run") else: velocity.x = move_toward(velocity.x, 0, SPEED) anim.play("idle") if direction == -1: $AnimatedSprite2D.flip_h = true else: $AnimatedSprite2D.flip_h = false move_and_slide() анимация бега не прекращается даже когда останавливается что делать
можете помочь , у меня ошибка вылазит extends CharacterBody2D const SPEED = 300.0 const JUMP_VELOCITY = -400.0 # Get the gravity from the project settings to be synced with RigidBody nodes. var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") @onready var anim = $AnimatedSprite2D func _physics_process(delta): # Add the gravity. if not is_on_floor(): velocity.y += gravity * delta # Handle Jump. if Input.is_action_just_pressed("ui_accept") and is_on_floor(): velocity.y = JUMP_VELOCITY # Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. var direction = Input.get_axis("ui_left", "ui_right") if direction: velocity.x = direction * SPEED anim.play("Ran") else: velocity.x = move_toward(velocity.x, 0, SPEED) anim.play("Idle") if direction == -1: $AnimatedSprite2D.flip_h = true elif direction == 1: (тут красным горит ) $AnimatedSprite2D.flip_h = false move_and_slide()
если вы читаете комменты помогите, у меня когда я пишу if direction == -1: и захожу в игру и иду налево перс все равно смотрит вп право хот идет налево ((( AnimatedSprite2D.flip_h = true
Ребята помогите пж что делать если скрипт на то что бы персонаж поворачивался не работает я его написал в точь в точь но ничего не работает я час на этот момент потратил и ничего не получаеться подскаите что делать вот сам скрипт: extends CharacterBody2D const SPEED = 300.0 const JUMP_VELOCITY = -400.0 # Get the gravity from the project settings to be synced with RigidBody nodes. var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") @onready var anim = $AnimatedSprite2D func _physics_process(delta): # Add the gravity. if not is_on_floor(): velocity.y += gravity * delta # Handle jump. if Input.is_action_just_pressed("ui_accept") and is_on_floor(): velocity.y = JUMP_VELOCITY # Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. var direction = Input.get_axis("ui_left", "ui_right") if direction: velocity.x = direction * SPEED anim.play("walk") else: velocity.x = move_toward(velocity.x, 0, SPEED) anim.play("idle") if direction == -1: $AnimatedSprite2D.flip_h = true if direction == 1: $AnimatedSprite2D.flip_h = false move_and_slide() если найдите ошибки то сообщите пж или дайте советы что сделать что бы скрипт сработал.