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)
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)
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], })