コード例 #1
0
ファイル: personage.py プロジェクト: dregor/game
    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)
コード例 #2
0
ファイル: personage_parts.py プロジェクト: dregor/game
    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)
        '''