0

私は大きなユーザーではありませんが、現実的な LED ライト効果の基礎を作成するための BOX2D を見つけました。シーンのリアリズムを達成しようとしていないので、反復時間は大きな問題ではありません。しばらくの間、噴水効果を生成するプログラムを実行していました。Python2.7.12、Ubuntuで動作しますが、Box2Dのバージョンがわかりません。

今、理想的には Python3 で、現在は Python2.7.12 で RaspberryPi で同じことを実行したいと考えています。

コードは、「restitution」が定義されているポイントで失敗します。

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' がありません

したがって、この(作業中の)ケースで格納されているフィールドはどこですか。

4

1 に答える 1