Box2DФорумОбщее

Смена ориентации сложного тела. Движение вправо и влево

#0
17:44, 14 окт 2017

Как вы меняете тела в зависимости от направления движения??

car1 | Смена ориентации сложного тела. Движение вправо и влево
сфк2 | Смена ориентации сложного тела. Движение вправо и влево


Как я понимаю есть такие варианты:
1) Берем инфу с тела (скорости координаты и тп), удаляем тело, подгружаем альтернативное тело задаем ему инфу.. - на слабых компах игра замирает на время смены ориентации обьекта
2) Создаем оба тела одновременно но альтернативное будет неактивным, затем их меняем местами...  Они все время вместе друг за другом.
3) Перекидывать из мира в буферный мир и обратно.

Как вы решили эту проблему? Или бокс2д умеет делать FLip всех вершин?

#1
19:15, 14 окт 2017

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

#2
19:44, 14 окт 2017

NSX
Не понял про буфферный мир.
На компе вроде как вариант (1) должен прокатывать (хотя все же зависит от того сколько всего нужно создать).
Если меняешь персонажа, то как правило персонаж представляет из себя выпуклую фигуру, так что там даже не нужно создавать какие-то сложные фикстуры.
Если хочешь менять фикстуры машин (окружения мира), то наверно лучше создать копию и активировать ее в нужное время.
Во всяком случае на телефонах я бы начал с создании копий так как выделение/удаление памяти у меня вызывало тормоза.

#3
19:58, 14 окт 2017

Alerr
Буферный мир - закидывать в него правую сторону, вытаскивать левую, и наоборот.
при смене направления даже 4 машин со скриншота уже лагает (это если из файла или кода пересоздавать все тело и удалять старое).
мне кажется реально оптимальный вариант 2 тела в одних координатах, второе полностью неактивно, и менять их местами (активность)

#4
15:01, 16 окт 2017

NSX
Извиняюсь за долгий ответ. На компе это не должно быть существенно. А на телефоне да, лучше менять активность.

Box2DФорумОбщее

Тема в архиве.