Телепортационный узел - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь телепортировать мой узел игрока (kinematicbody2d), когда он достигает моего конечного узла (area2d) со стороны узла Finish
Кстати, я использую Годо 3

Что я пробовал:
Измените местоположение, используя get_node ("игрок"). Set_pos и get_node ("игрок"). Location

Код:

extends Area2D

func _on_Finish12_body_entered(body):
        if body.get_name() == "player":
                print("%s touched the finish on level %s" % [body.get_name(), get_tree().get_current_scene().get_name()])
                get_node("player").position = Vector2(1504, 1896)
                pass

Так что мне нужно:
Игра телепортируется на 1504, 1896

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Вот что работает с Area и KinematicBody (то есть 3D):

extends Area
func _on_Area_body_entered(body):
    body.look_at_from_position(spawn, Vector3(0,0,0),  Vector3(0,0,0))

с порождением порождения, являющимся пустым пространством для определения точки в пространстве для телепортации.

0 голосов
/ 14 января 2019

Здесь много неизвестных, которые могут быть проблемой

  • Обновлено ли местоположение игрока в других частях кода? и если да, то возможно ли, что вы действительно перешли на 1504, 1896, но затем сразу же были забиты этим кодом?
  • Каково текущее поведение при применении новой позиции? Ваш игрок вообще двигается? Это идет куда-то непреднамеренно?
  • Ваш оператор печати выполняется?
  • Вы пытались использовать move_and_slide / move_and_collide для кинематического тела для проверки на столкновение?

Несколько идей о том, как это выяснить.

...