PDA

Просмотр полной версии : [Box2D] Зеркальное отражение персонажа(flip)


54321go
02.08.2012, 16:37
Есть персонаж, состоящий из множества объектов с соединением b2RevoluteJointDef, надо, чтобы можно было его зеркально отразить(это для того чтобы он ходил влево и в право). Подскажите пожалуйста как это можно реализовать?

strangedk
02.08.2012, 18:14
Я думаю что средствами box2D это прекрасно можно реализовать.

А направление расчитывайте по вектору, и делайте scaleX = -1;

54321go
02.08.2012, 18:53
Я думаю что средствами box2D это прекрасно можно реализовать.

А направление расчитывайте по вектору, и делайте scaleX = -1;

Там много объектов, их можно как-то объединить в группу, чтобы потом ей присвоить scaleX = -1?

strangedk
02.08.2012, 21:45
Насколько я помню в Box2D используется практика содержать ссылки на визуальные объекты в UserData самих физических тел.

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

Соответственно в цикле обновления мира собирайте информацию из UserData физических объектов, касающихся непосредственно визуальных, и передавайте её выше описанному классу.

Кстати, не забудьте в классе сделать проверку на изменение данных. Если данные заходят те же - то просто игнорируйте их - это поможет с производительностью.

54321go
02.08.2012, 21:50
Вместо этого объедините все ваши визуальные объекты в один визуальный класс
Вот это я и не понимаю как можно сделать в box2d

caseyryan
02.08.2012, 23:04
Я думаю что средствами box2D это прекрасно можно реализовать.
А я думаю иначе. Средствами бокс2д это реализовать невозможно. Только разрушив тело, и создав его заново. Но это больше походит на костыль.
Хотя для довольно простой игры такой способ может быть вполне применим

54321go
02.08.2012, 23:16
А я думаю иначе. Средствами бокс2д это реализовать невозможно. Только разрушив тело, и создав его заново. Но это больше походит на костыль.
Хотя для довольно простой игры такой способ может быть вполне применим
Я думаю будет большая нагрузка на процессор после каждого разворота создавать заново где-то 9 объектов. Или не будет?

caseyryan
03.08.2012, 07:54
Не будет. 9 объектов - это мелочи.

54321go
03.08.2012, 14:34
хорошо, спасибо.