Я не большой пользователь, но нахожу BOX2D для создания основы для реалистичных эффектов светодиодного освещения.Время итерации не является большой проблемой, потому что я не пытаюсь достичь реалистичности сцены.Некоторое время у меня была запущена программа для генерации эффекта фонтана.Он работает под Python2.7.12, Ubuntu, но я не знаю версию Box2D.
Теперь я хочу запустить то же самое на RaspberryPi в идеале под Python3, но в настоящее время под Python2.7.12.
Код завершается с ошибкой в точке, где определяется «реституция»:
body = world.CreateStaticBody(
position=(0, 10),
allowSleep=False,
restitution=0.7,
shapeFixture=Box2D.b2FixtureDef(density=20.0),
userData=time.time(),
shapes=[
Box2D.b2PolygonShape(box=(14, 0.1, (0,-7), 0)),
Box2D.b2PolygonShape(box=(14, 0.1, (0,7), 0)),
Box2D.b2PolygonShape(box=(0.1, 7, (0,0), 0)),
Box2D.b2PolygonShape(box=(0.1, 7, (14,0), 0)),
# Box2D.b2CircleShape(pos=(7,0),radius=0.5),
]
)
Ошибка - бла, бла ...
File "/home/pi/.local/lib/python2.7/site-packages/Box2D/Box2D.py", line 152, in _init_kwargs
raise AttributeError('Invalid keyword argument "%s" for %s' % (key, cls))
AttributeError: Invalid keyword argument "restitution" for <class 'Box2D.Box2D.b2BodyDef'>
Конечно, код может также потерпеть неудачу позжено когда я закомментирую оскорбительное утверждение, оно, кажется, проходит до конца, хорошо.
Мой вопрос: как мне диагностировать проблему?
PS.Исходная установка в Ubuntu работает нормально, но там, когда я вхожу в оболочку Python "body.restitution", я получаю возврат:
AttributeError: у объекта 'b2Body' нет атрибута 'restitution'
Итак, где хранится поле в этом (рабочем) случае.