Нахождение координат вращаемого объекта - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть 2 объекта, представляющих интерес для этой проблемы.

  1. Obj1 - родительский объект, спрайт круга
  2. Obj2 - вложенный дочерний объект, квадратный спрайт

У Obj1 есть ребенок по имени objHolder, внутри objHolder - Obj2.objHolder имеет свою точку вращения, установленную на середину Obj1, а Obj2 находится вблизи окружности Obj1.Цель состоит в том, чтобы повернуть objHolder так, чтобы Obj2 выглядел так, как будто он колеблется по окружности Obj1.

Каждый кадр objHolder будет иметь новое значение поворота на основе некоторых других входных значений из моего интерфейса.

Мой вопрос заключается в том, как получить координаты x, y Obj2 (относительно Obj1, а не сцены) в каждом кадре?

Если я использую localToGlobal (), он не будет учитывать значение поворота.Есть ли более простой способ?

1 Ответ

0 голосов
/ 07 декабря 2018

Ну, это должно учитывать вращение.Вы описываете, что у вас есть вложенная структура, подобная этой: Obj1 <- objHolder <- Obj2.Затем objHolder находится в центре видимого Obj1, а Obj2 смещается от центра objHolder.Теперь, если вы дадите objHolder некоторое вращение, вы должны увидеть, как Obj2 вращается и движется по кругу.Это делает это?Если нет, то ваш список отображения не соответствует описанию.Если Obj2 вращается, но не движется, то у вас есть точка поворота Obj2 в центре objHolder, отодвиньте ее. </p>

В любом случае, ответ заключается в использовании обоих переводов, сначала от источника к этапу, затем от этапак цели.Если вам нужны координаты одного объекта в системе другого объекта, сделайте следующее:

p=target.globalToLocal(source.localToGlobal(new Point()));

В вашем случае source - это Obj2, а target - это Obj1.И, new Point() - это точка с координатами (0,0) в системе координат исходного объекта, иначе говоря, опорная точка source.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...