Ejemplo n.º 1
0
    def create_body(self, position, linear_velocity):
        body_def = box2d.b2BodyDef()
        body_def.position = position
        body_def.angle = 2.0 * math.pi * random.random()

        shape_def = box2d.b2PolygonDef()
        vertices = []
        for i in xrange(5):
            angle = (i + random.random()) / 5.0 * 2.0 * math.pi
            x = self.radius * math.cos(angle)
            y = self.radius * math.sin(angle)
            vertices.append((x, y))
        shape_def.setVertices_tuple(vertices)
        shape_def.density = 2000.0
        shape_def.restitution = 1.0
        shape_def.filter.categoryBits = 0x0002
        shape_def.filter.maskBits = 0x0001

        body = self.world.CreateBody(body_def)
        body.CreateShape(shape_def)
        body.SetMassFromShapes()
        body.SetLinearVelocity(linear_velocity)
        body.SetAngularVelocity(random.random() - 0.5)
        body.SetUserData(self)
        return body
Ejemplo n.º 2
0
Archivo: ship.py Proyecto: elemel/void
    def create_body(self, world):
        body_def = box2d.b2BodyDef()
        body_def.position.Set(0.0, 0.0)
        body_def.angle = -0.5 * math.pi

        shape_def = box2d.b2PolygonDef()
        shape_def.setVertices_tuple([(-1.0, -1.0), (1.0, -1.0), (0.0, 2.0)])
        shape_def.density = 1000.0
        shape_def.restitution = 1.0
        shape_def.filter.categoryBits = 0x0001
        shape_def.filter.maskBits = 0x0002

        body = world.CreateBody(body_def)
        body.CreateShape(shape_def)
        body.SetMassFromShapes()
        body.SetUserData(self)
        return body