Pymunk Поиск форм и ограничений, связанных с телом

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

Я также хотел бы увидеть способ обнаружения форм, связанных с телом. В общем, я хотел бы иметь возможность автоматически удалять формы и ограничения тела, когда я удаляю тело из пространства. Это возможно?


person desophos    schedule 26.02.2013    source источник
comment
Прямо сейчас нет встроенного способа сделать это в pymunk. В Chipmunk функции итератора зацикливаются на формах и ограничениях, которые как прикреплены к телу, так и добавлены в пространство. Мне интересно, так ли вы хотите, чтобы это было и в pymunk, или должно быть достаточно, чтобы форма или ограничение были прикреплены к телу?   -  person viblo    schedule 03.03.2013
comment
Я думаю, что было бы достаточно перебрать формы и ограничения, прикрепленные к конкретному телу, потому что можно было бы легко проверить принадлежность к пространству.   -  person desophos    schedule 03.03.2013


Ответы (1)


Последняя магистральная версия pymunk имеет два новых (на сегодняшний день) свойства форм и ограничений в классе Body. Я всегда возвращал формы/ограничения независимо от того, добавлены они в пространство или нет.

Итак, теперь вы можете просто сделать:

>>> import pymunk
>>> b = pymunk.Body()
>>> b2 = pymunk.Body()
>>> j = pymunk.PivotJoint(b,b2,(0,0))
>>> s = pymunk.Circle(b,3)
>>> b.constraints
set([<pymunk.constraint.PivotJoint object at 0x02521890>])
>>> b.shapes
set([<pymunk.Circle object at 0x025218F0>])

(Это будет включено в pymunk 3.1.)

person viblo    schedule 04.03.2013