Какой объект лучше создать кривую, используя b2EdgeShape против b2ChainShape?

0

У меня есть функция, которая генерирует точки для кривой. Я использую эти точки, чтобы создать тело box2d, представляющее землю.

Я пробовал следующие два способа сделать это:

  1. Сгенерируйте все точки и сохраните их в массиве. Создайте светильники между любыми двумя граничными краями.

  2. Сгенерируйте все точки и сохраните их в массиве. Создайте b2ChainShape и создайте приспособление для формы цепи.

При тестировании обе кривые выглядят одинаково гладкими (в любом случае они используют одни и те же точки). В соответствии со временем инструмент профилирования в Xcode, методы, которые я использую для генерации тела, занимают примерно одинаковое количество времени (почти до миллисекунды).

Любая причина, почему я должен выбирать один за другим?

  • 0
    Ваше утверждение: «Создание осветительных приборов между любыми двумя последовательными точками краевых фигур». Вы имеете в виду: «Затем создайте приборы между любыми двумя последовательными точками, используя b2EdgeShape (s)».
  • 0
    b2ChainShape использует b2EdgeShape для внутреннего использования, поэтому разница в производительности отсутствует. Форму цепочки легче настроить, потому что она организует для вас призрачные вершины, вот в этом и есть единственное отличие.
Показать ещё 1 комментарий
Теги:
xcode
box2d

1 ответ

0

Согласно руководству:

Цепные фигуры

Форма цепи обеспечивает эффективный способ соединения многих ребер вместе для построения ваших статических игровых миров. Цепные формы автоматически устраняют столкновения призраков и обеспечивают двухстороннее столкновение.

Из названия вашего вопроса вы смотрите на создание длинной серии отдельных ребер против создания единой цепочки. Форма цепи более эффективна для создания "множества краев".

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню