Как изменить положение узла в скрипте?

Мне нужна помощь в поиске способа изменить положение узла в скрипте, я использую переменную, чтобы сообщить мне, когда игрок смотрит влево, и мне нужна рука (отдельный узел, чтобы он мог смотреть на курсор ), чтобы изменить положение, когда игрок поворачивается влево / вправо.

Некоторый код:

var isFacingLeft = true

func Get_Input():
    $ArmSword.look_at(get_global_mouse_position())

func _physics_process(_delta):
    Get_Input()        

Узел ArmSword - это узел спрайта для руки, держащей меч, который является узлом, положение которого мне нужно изменить. Это еще не весь код, я просто удалил элементы управления, которые почти все, что у меня есть на момент, мудрый игрок.


person Cheeseman    schedule 04.03.2020    source источник
comment
Буду рад помочь, но по вашему описанию сложно сказать. Можете ли вы опубликовать образец кода или хотя бы набросок структуры вашего узла?   -  person Christopher Bennett    schedule 05.03.2020
comment
Я добавил больше информации. Этого достаточно?   -  person Cheeseman    schedule 05.03.2020
comment
Извините, из этого сложно понять, что происходит. Какая у вас проблема? Во-первых, это может помочь сохранить global_mouse_position как переменную (например, var mousepoint = get_global_mouse_position), а затем вызвать $ArmSword.look_at(mousepoint). Все это должно быть в пределах _process() или _physics_process() функций.   -  person Christopher Bennett    schedule 05.03.2020
comment
Кроме того, если у вас возникли проблемы с вращением меча, попробуйте прикрепить пространственный узел к игроку, а затем прикрепите меч к пространственному узлу. Затем вы можете использовать пространственный узел в качестве точки вращения и заставить его вращаться вместо попытки повернуть узел меча.   -  person Christopher Bennett    schedule 05.03.2020
comment
Проблема в том, что я действительно не знаю, как перемещать позицию узла через скрипт. Хотя вращение в порядке.   -  person Cheeseman    schedule 05.03.2020
comment
Как переместить? Вы хотите переместить положение узла в дереве? Или вы просто хотите, чтобы меч пошевелился?   -  person Christopher Bennett    schedule 05.03.2020
comment
Я хочу переместить локальную позицию узла, так что да, внутри дерева.   -  person Cheeseman    schedule 05.03.2020
comment
Итак, для ясности, мы говорим об изменении иерархии узлов с помощью скрипта, верно?   -  person Christopher Bennett    schedule 05.03.2020
comment
Ага. (просто больше писем, чтобы можно было опубликовать это)   -  person Cheeseman    schedule 05.03.2020
comment
Есть ли шанс, что эта ветка поможет? reddit.com/r/godot/comments/ca7894/moving_nodes_around   -  person Christopher Bennett    schedule 05.03.2020
comment
Нет, я думаю, у него другая проблема, я хочу знать, есть ли что-нибудь вроде: $ nodeName.position (x, y) | и я не думаю, что он существует, потому что он дал мне ошибку, когда я попробовал (или я использую его неправильно).   -  person Cheeseman    schedule 05.03.2020
comment
Да, ок. Я просто снимал в темноте. К сожалению, у меня нет большого опыта изменения иерархии узлов (по крайней мере, не так, как вы говорите). Извини, я ничем не мог больше помочь. Я буду искать на всякий случай.   -  person Christopher Bennett    schedule 05.03.2020
comment
@Cheeseman, насколько я понимаю, вы хотите, чтобы спрайт руки отображался позади игрока, когда он смотрит в заданном положении, и спереди, когда он смотрит на другого, это правильно? Или вы хотите просто изменить положение руки относительно того, куда указывает мышь?   -  person Breno Teodoro    schedule 31.03.2020


Ответы (1)


Я думаю, $ArmSword.position = (some Vector) должен это сделать.

person NautMeg    schedule 05.03.2020