class Sphere(object): def __init__(self, world, pos, size, mass): self.world = world self.pos = pos # Create a body inside the world self.body = Body(world) M = Mass() M.setSphere(2500.0, size) M.mass = mass self.body.setMass(M) self.body.setPosition(pos) # draw body self.rbody = sphere(pos=pos, radius=size) def getPosition(self): return self.body.getPosition() def getLinearVel(self): return self.body.getLinearVel() def addForce(self, force): return self.body.addForce(force) def static(self): self.sj = BallJoint(self.world) self.sj.attach(self.body, environment) self.sj.setAnchor(self.pos) def joint(self, body): self.j = BallJoint(self.world) self.j.attach(self.body, body.body) self.j.setAnchor( body.pos ) def draw(self): self.rbody.pos = self.getPosition()
def make_battery(world, position=(0, 0, 0)): mass = Mass() mass.setBox(battery_density, 70, 25, 35) body = Body(world) body.setMass(mass) body.setPosition(position) return body
def make_servo(world, position=(0, 0, 0)): mass = Mass() mass.setBox(servo_density, 40, 20, 35) body = Body(world) body.setMass(mass) body.setPosition(position) return body
def make_lower_leg(world): lower_leg_mass = Mass() lower_leg_mass.setBox(body_density, 30, 100, 5) lower_leg = Body(world) lower_leg.setMass(lower_leg_mass) servo = make_servo(world) fix(world, lower_leg, servo) return lower_leg
def make_body(world): mass = Mass() mass.setBox(body_density, 240, 27, 150) body = Body(world) body.setMass(mass) fix(world, body, make_battery(world, (0, 27 / 2, -(150 / 2 - 35 / 2)))) fix(world, body, make_battery(world, (0, 27 / 2, 150 / 2 - 35 / 2))) fix(world, body, make_servo(world, (240 / 2 - 30, 0, 150 / 2))) fix(world, body, make_servo(world, (240 / 2 - 30, 0, -150 / 2))) fix(world, body, make_servo(world, (-(240 / 2 - 30), 0, 150 / 2))) fix(world, body, make_servo(world, (-(240 / 2 - 30), 0, -150 / 2))) return body
def make_upper_leg(world): upper_leg_mass = Mass() upper_leg_mass.setBox(body_density, 30, 100, 5) upper_leg = Body(world) upper_leg.setMass(upper_leg_mass) return upper_leg