def __init__(self, game, position=(0, 0), angle=0, additive=(0, 0), name='', speed=100, is_inside=True, is_you=False, body=None, orientation=0): Composite.__init__(self, game=game, position=position, angle=angle, is_inside=is_inside, body=body) self.is_you = is_you self.name = name self.speed = speed self.additive = additive self.orientation = orientation for fixture in self.body.body.fixtures: fixture.filterData.maskBits = Bits.PERSONAGE_MASK fixture.filterData.categoryBits = Bits.PERSONAGE_BITS if self.is_you: self.center_box = self.game.world.CreateDynamicBody(position=self.get_position(), shapes=B2.b2PolygonShape(box=(0.5, 0.5))) for item in self.center_box.fixtures: item.filterData.maskBits = Bits.NOTHING_MASK item.filterData.categoryBits = Bits.NOTHING_BITS self.game.world.CreatePrismaticJoint(bodyA=self.game.maw.center_box, bodyB=self.center_box, axis=(0, -1)) self.game.world.CreateRevoluteJoint(bodyA=self.center_box, bodyB=self.body.body)
def __init__(self, game, position=(0, 0), angle=0, is_inside=True, size=(1, 0.4), name='Hand'): width, height = size Composite.__init__(self, game, position, angle, is_inside=is_inside, name=name, body=Rectangle(game, position=position, angle=angle, is_inside=is_inside, size=(height, height))) self.shoulder = self.body vertices = [(-width / 2, 0), (-width / 4, height), (0, height / 2), (width / 2, height / 2), (width / 2, -height / 2), (-width / 4, -height)] forearm_pos = Vec2(position) + Vec2(-width / 2 + height / 2, 0) forearm_joint_pos = (width / 2 - height / 2, 0) self.forearm = FixtureObject(game, position=forearm_pos, angle=angle, is_inside=is_inside, vertices=vertices, name='forearm') self.add_part(self.forearm) '''