Ограничивающая рамка Pixijs относительно системы координат определенных родителейJavascript

Форум по Javascript
Anonymous
Ограничивающая рамка Pixijs относительно системы координат определенных родителей

Сообщение Anonymous »

Во-первых, я не гений в компьютерной графике. Поэтому я могу не увидеть очевидных преобразований...
Я пытаюсь найти способ получить правильную ограничивающую рамку (для обнаружения столкновений) контейнера относительно системы координат родительского контейнера. В Pixijs есть методы для localBounds (локальной системы координат) или getBounds (мировой системы координат) отображаемого объекта. Мне нужно что-то среднее.
Идея состоит в том, чтобы поместить всю сцену в один родительский контейнер, чтобы можно было легко масштабировать все сразу. Фон и пользовательский интерфейс не масштабируются.

Код: Выделить всё

app.stage
├─ background
├─ UI
├─ parent: > scaled <     (contains all game objects)
├─ child              (grouping of some objects)
├─ container1
├─ container2
├─ ...
├─ other layers
├─ ...
Как получить правильную ограничивающую рамку контейнера 1 относительно системы координат родительского? Я попытался инвертировать родительский worldTransform и добавить контейнеры (bunny) worldtransform следующим образом:

Код: Выделить всё

  let inverseTransform = parent.worldTransform.invert()
let bunnyTransform = bunny[2].worldTransform
inverseTransform.prepend(bunnyTransform);
Но как-то это выглядит не очень. См. здесь https://codepen.io/stot/pen/vEKxwOK
Может быть, есть лучший подход, потому что он кажется немного сложным.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ate-system

Вернуться в «Javascript»