sqr1 = RigidBody2D(sqr_vertices, pos=Vec2D(400,400), velocity=Vec2D(-160,-160), angularVelocity=5, orientation = 0, inverseMass = 2500, inertia =.05,muS = .2, muK = .01) sqr2 = RigidBody2D(sqr_vertices, pos=Vec2D(350,300), velocity=Vec2D(60,-60), angularVelocity=5, orientation = 0, inverseMass = 2500, inertia =.05, muS = .2, muK = .01) rect1 = RigidBody2D(rect_vertices, pos=Vec2D(90, 200), velocity=Vec2D(20,-60), angularVelocity=1, orientation = 0, inverseMass = 600, inertia =6, muS = .25, muK = .04) leftwall = RigidBody2D(vert_vertices, pos=Vec2D(sidewidth,height/2), inverseMass = 0, inertia = 999999) rightwall = RigidBody2D(vert_vertices, pos=Vec2D(width-sidewidth,height/2), inverseMass = 0, inertia = 999999) topwall = RigidBody2D(hori_vertices, pos =Vec2D(width/2, sidewidth), inverseMass = 0, inertia = 999999) bottomwall = RigidBody2D(hori_vertices, pos=Vec2D(width/2, height-sidewidth-50), inverseMass = 0, inertia = 999999, orientation=-.2) divider1 = RigidBody2D(rect_vertices, pos=Vec2D(width- 100,height/2), inverseMass=0, orientation=.2, inertia = 999999) divider2 = RigidBody2D(tri_vertices, pos=Vec2D(width/4,height/2), inverseMass=0, orientation=1.57,inertia = 999999) avatar = RigidBody2D(avatar_vertices, pos = Vec2D(200,100), velocity=Vec2D(0,0),inverseMass=4000, inertia=.4, muS=.3, muK=.04, angularVelocity=0) entities = [ rect1, tri, sqr1, sqr2, leftwall,rightwall,topwall, bottomwall, divider1, divider2, avatar] for e in entities: renderer.addEntity(e) can.pack() aeroDrag = 2 g = Vec2D(0,3) def left(event): avatar.velocity+=Vec2D(-10,0) def right(event): avatar.velocity+=Vec2D(10,0) def up(event): avatar.velocity+=Vec2D(0, -10) def down(event): avatar.velocity+=Vec2D(0,10) root.bind('<Left>', left)