для тех кто не хочет ждать: func move_player(): velocity = Vector2(Input.get_axis("left", "right"), Input.get_axis("up", "down")).normalized() * speed move_and_slide()
Привет ! Я новенький и может быть задаю глупый вопрос ) А почему ты старые строки не удалил , как мне понять что срабатывают новые строки а не старые ? Ты ведь заменил грамосткий код на две, три строки.... Разве нет ?)
Если ты обратишь внимание, в самом вверху в методе '_process' ты можешь увидеть что единственный метод который вызывается в данной функции - move_player_3. Как раз таки вся новая реализация и была написана в этом методе move_player_3.
Помогите кто-нибудь! Пж! Мне пишут, что у меня таблутация неверная, а я не знаю, как исправить.extends KinematicBody2D var speed = 150 var jumpForce =300 var gravity = 700 var vel = Vector2() func _physics_process(delta): if Input.is_action_pressed("player_left"): vel.x -= speed elif Input.is_action_pressed("player_left"): vel.x += speed move_and_slide(vel, Vector2.UP)
Если вам спрайты добавить надо(ГОДО4): extends CharacterBody2D const SPEED = 300.0 const JUMP_VELOCITY = 300 # Get the gravity from the project settings to be synced with RigidBody nodes. var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") func _physics_process(delta): velocity = Vector2(Input.get_axis("ui_left", "ui_right"), Input.get_axis("ui_up", "ui_down")).normalized() * SPEED move_and_slide() if Input.is_action_pressed("ui_down"): $AnimatedSprite2D.play("LookDown") if Input.is_action_pressed("ui_up"): $AnimatedSprite2D.play("LookUP") if Input.is_action_pressed("ui_left"): $AnimatedSprite2D.play("LookLeft") if Input.is_action_pressed("ui_right"): $AnimatedSprite2D.play("LookRight")
слушай не знаешь как сделать чтоб при зажиме (верх,лево) и т.д значение дайрекшн были целыми, а не 0.707107. Или как можно включить анимации? у меня сейчас if direction.y == -1 and direction.x == -1: anim.flip_h = true animplayer.play("run_up_xy") но он не работает
@@m.vizaru7879 можно например округлить значения к ближайшему целому, что-то вроде этого: var direction = Input.get_vector("left", "right", "up", "down") var rounded_direction = Vector2(round(direction.x), round(direction.y)) print("direction:", direction, " rounded_direction:", rounded_direction)
This has been helpful for me to achieve player mobility in the game, thank you very much. Can I share your video with other websites and attach a link?😀
А кто так пишет?!😂
Всё бы ничего но у меня перс ни на одну кнопку не реагирует.
братик, у тебя есть потанцевал! Тебе реально надо оживать.
Не получается
Кайф. особенно последний вариант.
Жду новых видео
Имба,очень круто
Чел воскресни
var speed = 300 func _process(delta): pass var direction: Vector2 = Vector2(Input.get_axis("ui_left","ui_right"),Input.get_axis("ui_up","ui_down")).normalized() velocity = direction * speed move_and_slide()
для тех кто не хочет ждать: func move_player(): velocity = Vector2(Input.get_axis("left", "right"), Input.get_axis("up", "down")).normalized() * speed move_and_slide()
Спасибо, ты лучший
норм
Привет ! Я новенький и может быть задаю глупый вопрос ) А почему ты старые строки не удалил , как мне понять что срабатывают новые строки а не старые ? Ты ведь заменил грамосткий код на две, три строки.... Разве нет ?)
Если ты обратишь внимание, в самом вверху в методе '_process' ты можешь увидеть что единственный метод который вызывается в данной функции - move_player_3. Как раз таки вся новая реализация и была написана в этом методе move_player_3.
Спасибо, работает. Только сейчас чуть-чуть поменялось. Вместо left, теперь пишем vi_left
Современное программирование - написать компактно. И буй с ним что тот кто будет после тебя ничего не поймет.
Только 1 видео? На годот актуальных гайдов очень мало, и все в основном по старой версии. Не забрасывай это дело, если есть что рассказать!
Помогите кто-нибудь! Пж! Мне пишут, что у меня таблутация неверная, а я не знаю, как исправить.extends KinematicBody2D var speed = 150 var jumpForce =300 var gravity = 700 var vel = Vector2() func _physics_process(delta): if Input.is_action_pressed("player_left"): vel.x -= speed elif Input.is_action_pressed("player_left"): vel.x += speed move_and_slide(vel, Vector2.UP)
не обманул, рил на 1 строку
Подписка готова, ждём-с от тебя ещё роликов!
чёткое видео, всё понятно
Очень полезно, благодарю!
Я так делаю const MOTION_SPEED = 30 # Pixels/second. const FRICTION_FACTOR = 0.89 func _physics_process(_delta): var motion = Input.get_vector("move_left", "move_right", "move_up", "move_down") # Make diagonal movement fit isometric tiles. motion.y /= 2 velocity += motion.normalized() * MOTION_SPEED # Apply friction. velocity *= FRICTION_FACTOR move_and_slide()
метод get_vector класса Input уже возвращает нормализованный вектор, так что смысла в повторной нормализации - нет
привет.можешь пожалуйста сказать, что это за язык программировния.
GDScript
Спасиб
Если вам спрайты добавить надо(ГОДО4): extends CharacterBody2D const SPEED = 300.0 const JUMP_VELOCITY = 300 # Get the gravity from the project settings to be synced with RigidBody nodes. var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") func _physics_process(delta): velocity = Vector2(Input.get_axis("ui_left", "ui_right"), Input.get_axis("ui_up", "ui_down")).normalized() * SPEED move_and_slide() if Input.is_action_pressed("ui_down"): $AnimatedSprite2D.play("LookDown") if Input.is_action_pressed("ui_up"): $AnimatedSprite2D.play("LookUP") if Input.is_action_pressed("ui_left"): $AnimatedSprite2D.play("LookLeft") if Input.is_action_pressed("ui_right"): $AnimatedSprite2D.play("LookRight")
Что это
Он добавляет проверку на кнопки чтобы проигрывалась анимка@@FANROLL_OFFICIAL
Легче пожалуй сделать скриптом в самом AnimatedSprite
А гравитация зачем?
Move_and_slide просто не работает, персонаж просто не двигается
Такая же проблема не подскажешь как решил ее
@@ВалераСтепанов-й2р к сожалению никак. Попробуй полистать форумы, может что то найдёшь.
Помощь ещё нужна?
@@lidanit0191 не помешала бы :_)
@@sayrikgmd скинь примерный код, который у тебя не работает
кто знает как сделать рванное движение? Чтоб передвигался только по координатам которые на 8 делятся
Супер! А как сделать движение в изометрической плоскости в одну строку? Чтобы при нажатии одной кнопки передвигался по диагонали?
У тебя же есть система координат, сложением направлений и назначением на удобные тебе кнопки
спс
Оживай, чел. Доходчиво объясняешь.
Иногда лучше сделать длиннее, но интуитивно понятнее, чем вспоминать как оно вообще работает.
ну в данном случае используются довольно базовые функции GDScript, кмк + что делает условный get_axis() можно и в самом движке посмотреть 🫥
Почему перестал, продолжай) сейчас как никогда актуально)
Ещё есть функция get_vector, которая сразу Vector2D возвращает. Можно написать var direction = Input.get_vector("left", "right", "up", "down")
это лучше?
@@zaka45да
@@zaka45 минимум в два раза
слушай не знаешь как сделать чтоб при зажиме (верх,лево) и т.д значение дайрекшн были целыми, а не 0.707107. Или как можно включить анимации? у меня сейчас if direction.y == -1 and direction.x == -1: anim.flip_h = true animplayer.play("run_up_xy") но он не работает
@@m.vizaru7879 можно например округлить значения к ближайшему целому, что-то вроде этого: var direction = Input.get_vector("left", "right", "up", "down") var rounded_direction = Vector2(round(direction.x), round(direction.y)) print("direction:", direction, " rounded_direction:", rounded_direction)
только начала изучать годо и увидев это я просто в шоке :о видео по годо 4 будут?
чел продолжай
И почему всего 1 урок по ГОДО, не порядок, братик!
Отличное видео! Только жалко, что канал мертв
This has been helpful for me to achieve player mobility in the game, thank you very much. Can I share your video with other websites and attach a link?😀
NO