示例#1
0
    def __init__(self):
        super(Credits, self).__init__()

        opts = {
            'font_name': 'against myself',
            'font_size': 70,
            'anchor_x': 'center',
            'anchor_y': 'center',
        }

        label = Label('Credits', color=(0x00, 0x00, 0x00, 0xff), **opts)
        label.position = 400, 500
        self.add(label, z=1)

        label = Label('Credits', color=(0xff, 0xff, 0xff, 0xff), **opts)
        label.position = 400, 503
        self.add(label, z=2)

        shadow = DEVELOPERS.replace("white", "black")
        developers = HTMLLabel(shadow, width=760, height=300, multiline=True)
        developers.position = 20, 298
        self.add(developers, z=1)

        developers = HTMLLabel(DEVELOPERS, width=760, height=300, multiline=True)
        developers.position = 20, 300
        self.add(developers, z=2)
示例#2
0
    def __init__(self):
        super(TestLayer, self).__init__()

        x, y = director.get_window_size()

        self.text = HTMLLabel(
            """<center><font color=white size=4>
Image here --><img src="grossini.png"><-- here.</font></center>""",
            (100, y // 2))
        self.add(self.text)
示例#3
0
    def __init__(self):
        super(Credits, self).__init__()

        opts = {
            'font_name': 'against myself',
            'font_size': 70,
            'anchor_x': 'center',
            'anchor_y': 'center',
        }

        label = Label('Credits', color=(0x00, 0x00, 0x00, 0xff), **opts)
        label.position = 400, 500
        self.add(label, z=1)

        label = Label('Credits', color=(0xff, 0xff, 0xff, 0xff), **opts)
        label.position = 400, 503
        self.add(label, z=2)

        shadow = DEVELOPERS.replace("white", "black")
        developers = HTMLLabel(shadow, width=760, height=300, multiline=True)
        developers.position = 20, 298
        self.add(developers, z=1)

        developers = HTMLLabel(DEVELOPERS,
                               width=760,
                               height=300,
                               multiline=True)
        developers.position = 20, 300
        self.add(developers, z=2)
示例#4
0
    def _build_components(self):
        border_rect = rect.Rect(0, 0, self.Size[0], self.Size[1])
        border_rect.center = (0, 0)
        self.activated_border = Rect(border_rect, self.SelectedColor, width=4)

        if not self.static:
            self._create_status_border(border_rect, z=3, width=4)

        # Main card image.
        main_sprite = Sprite(
            '{}-{}.png'.format(Klass.Idx2Str[self._c_get('klass')],
                               self._c_get('type')),
            (0, 0),
            scale=1.0,
        )
        if self.static:
            card_cls = all_cards()[self.entity]
        else:
            card_cls = self.entity
        main_image = try_load_image(card_cls.get_image_name())
        if main_image is not None:
            image_sprite = Sprite(
                main_image,
                pos(0.0, 0.02, base=self.SizeBase),
                scale=1.2,
            )
            self.front_sprites['image'] = [image_sprite, 0]

        mana_sprite = Sprite(
            'Mana.png',
            pos(-0.85, 0.76, base=self.SizeBase),
            scale=0.9,
        )

        # Mark, name and description.
        mark_image = try_load_image('Mark-{}.png'.format(
            self._c_get('package')))
        mark_sprite = None if mark_image is None else Sprite(
            mark_image, pos(0, -0.6, base=self.SizeBase), scale=1.0)
        name_label = Label(self._c_get('name'),
                           pos(0, -0.08, base=self.SizeBase),
                           font_size=21,
                           anchor_x='center',
                           anchor_y='center',
                           bold=True)
        desc_label = HTMLLabel(self._render_desc(self._c_get('description')),
                               pos(0, -0.58, base=self.SizeBase),
                               anchor_x='center',
                               anchor_y='center',
                               width=main_sprite.width * 0.9,
                               multiline=True)
        # [NOTE]: There is an encoding bug when parsing the font name in HTML (in `pyglet\font\win32query.py:311`),
        # must set font out of HTML.
        desc_label.element.set_style('font_name',
                                     C.UI.Cocos.Fonts.Description.Name)

        # Race sprite and label.
        race = self._c_get('race')
        if race:
            race_sprite = Sprite('Race.png',
                                 pos(0.02, -0.86, base=self.SizeBase),
                                 scale=1.0)
            race_label = hs_style_label(','.join(Race.Idx2Str[r]
                                                 for r in race),
                                        pos(0.02, -0.86, base=self.SizeBase),
                                        font_size=22,
                                        anchor_y='center')
            self.front_sprites['race-sprite'] = [race_sprite, 3]
            self.front_sprites['race-label'] = [race_label, 4]

        self.front_sprites.update({
            'main': [main_sprite, 1],
            'mana-sprite': [mana_sprite, 2],
            'name': [name_label, 3],
            'desc': [desc_label, 3],
        })
        if mark_sprite is not None:
            self.front_sprites['mark-sprite'] = [mark_sprite, 2]
        if self._c_get('type') != Type.Permanent:
            mana_label = hs_style_label(str(self._c_get('cost')),
                                        pos(-0.84, 0.8, base=self.SizeBase),
                                        font_size=64,
                                        anchor_y='center',
                                        color=Colors['white'])
            self.front_sprites['mana-label'] = [mana_label, 4]

        back_sprite = Sprite(
            'Card_back-Classic.png',
            (0, 0),
            scale=1.0,
        )
        self.back_sprites['back'] = [back_sprite, 1]

        if self._c_get('rarity') not in (Rarity.Basic, Rarity.Derivative):
            self.front_sprites['rarity-sprite'] = [
                Sprite(
                    'Rarity-{}-{}.png'.format(self._c_get('type'),
                                              self._c_get('rarity')),
                    pos(0.0, -0.248, base=self.SizeBase)), 4
            ]

        if self._c_get('type') == Type.Minion:
            atk_sprite = Sprite('Atk.png',
                                pos(-0.86, -0.81, base=self.SizeBase),
                                scale=1.15)
            atk_label = hs_style_label(str(self._c_get('attack')),
                                       pos(-0.78, -0.8, base=self.SizeBase),
                                       anchor_y='center',
                                       font_size=64,
                                       color=self._get_attack_color())
            health_sprite = Sprite('Health.png',
                                   pos(0.84, -0.81, base=self.SizeBase),
                                   scale=1.05)
            health_label = hs_style_label(str(self._c_get('health')),
                                          pos(0.84, -0.8, base=self.SizeBase),
                                          anchor_y='center',
                                          font_size=64,
                                          color=self._get_health_color())
            self.front_sprites.update({
                'attack-sprite': [atk_sprite, 2],
                'attack-label': [atk_label, 3],
                'health-sprite': [health_sprite, 2],
                'health-label': [health_label, 3],
            })
        elif self._c_get('type') == Type.Spell:
            name_label.position = pos(0, -0.04, base=self.SizeBase)
            main_sprite.position = pos(0, -0.07, base=self.SizeBase)
            if mark_sprite is not None:
                mark_sprite.position = pos(0, -0.57, base=self.SizeBase)
        elif self._c_get('type') == Type.Weapon:
            name_label.position = pos(0, -0.01, base=self.SizeBase)
            main_sprite.position = pos(0, -0.01, base=self.SizeBase)
            if mark_sprite is not None:
                mark_sprite.position = pos(0, -0.55, base=self.SizeBase)
            atk_sprite = Sprite('WeaponAtk.png',
                                pos(-0.81, -0.83, base=self.SizeBase),
                                scale=0.85)
            atk_label = hs_style_label(str(self._c_get('attack')),
                                       pos(-0.78, -0.8, base=self.SizeBase),
                                       anchor_y='center',
                                       font_size=64)
            health_sprite = Sprite('WeaponHealth.png',
                                   pos(0.82, -0.83, base=self.SizeBase),
                                   scale=0.85)
            health_label = hs_style_label(str(self._c_get('health')),
                                          pos(0.83, -0.8, base=self.SizeBase),
                                          anchor_y='center',
                                          font_size=64)
            desc_label.element.color = Colors['white']
            self.front_sprites.update({
                'attack-sprite': [atk_sprite, 2],
                'attack-label': [atk_label, 3],
                'health-sprite': [health_sprite, 2],
                'health-label': [health_label, 3],
            })
        elif self._c_get('type') == Type.HeroCard:
            armor_sprite = Sprite('HeroArmor.png',
                                  pos(0.85, -0.86, base=self.SizeBase),
                                  scale=1.08)
            armor_label = hs_style_label(str(self._c_get('armor')),
                                         pos(0.85, -0.86, base=self.SizeBase),
                                         anchor_y='center',
                                         font_size=64)
            self.front_sprites.update({
                'armor-sprite': [armor_sprite, 2],
                'armor-label': [armor_label, 3],
            })