class LoadingScreen(GuiElement): def __init__(self, surface,): GuiElement.__init__(self, surface) x,y = self.surface.center.get() self.label = Label(self.surface,'Waiting for server response', x,y) def draw(self): self.label.draw()
class LoadingScreen(GuiElement): def __init__( self, surface, ): GuiElement.__init__(self, surface) x, y = self.surface.center.get() self.label = Label(self.surface, 'Waiting for server response', x, y) def draw(self): self.label.draw()
class Stat: j = 1 dy = -15 x = 30 def __init__(self, surface, template): self.template = template self.label = Label(surface, template, self.x, self.y+Stat.j*self.dy, False) Stat.j+=1 def update(self, *args): self.label.text = self.template % args def draw(self): self.label.draw()
class Stat: j = 1 dy = -15 x = 30 def __init__(self, surface, template): self.template = template self.label = Label(surface, template, self.x, self.y + Stat.j * self.dy, False) Stat.j += 1 def update(self, *args): self.label.text = self.template % args def draw(self): self.label.draw()
class PlayersOnlineDisplay(GuiElement): def __init__(self, surface): GuiElement.__init__(self, surface) self.x = 100 self.y = 400 self.title = Label(self.surface, 'Online:', self.x, self.y) self.plist = [] def update(self, player_list): self.plist = [] i = 0 for player, frags in player_list: i += 1 text = '%s [%s]' % (player, frags) label = Label(self.surface, text, self.x, self.y - i * 15) self.plist.append(label) def draw(self): self.title.draw() [label.draw() for label in self.plist]
class PlayersOnlineDisplay(GuiElement): def __init__(self, surface): GuiElement.__init__(self, surface) self.x = 100 self.y = 400 self.title = Label(self.surface, 'Online:', self.x, self.y) self.plist = [] def update(self, player_list): self.plist = [] i = 0 for player, frags in player_list: i+=1 text = '%s [%s]' % (player,frags) label = Label(self.surface, text, self.x, self.y-i*15) self.plist.append(label) def draw(self): self.title.draw() [label.draw() for label in self.plist]
class EquipmentDisplay(Drawable, GuiElement): control_keys = [F1, F2, F3, F4, F5, F6, F7, F8] def __init__(self, surface): GuiElement.__init__(self, surface) Drawable.__init__(self) self.slots = {} self.key_to_num = {k:i+1 for i,k in enumerate(self.control_keys)} self.x = 100 self.y = 300 self.dy = 40 self.tilenames = {} for item_type_name in dir(item_types): item_type = getattr(item_types, item_type_name) if hasattr(item_type, 'tilename'): tilename = item_type.tilename type_name = item_type.__name__ self.tilenames[type_name] = tilename self.title = Label(self.surface, 'Equipment:', self.x, self.y) self.tiles = [] def update(self, items_dict): self.tiles = [] yn = 0 n = 1 for item, number in items_dict.items(): point = Point(self.x, self.y - yn*self.dy) tilename = self.tilenames[item] width = self.surface.tiledict[tilename].width height = self.surface.tiledict[tilename].height shift = Point(width, height/2) sprite = create_tile(point - shift, tilename) label = create_label("F-%s [%s]" % (n, number), point) self.tiles.append(label) self.tiles.append(sprite) self.slots[n] = item yn+=1 n+=1 def on_key_press(self, symbol, modifiers): "движение с помощью клавиатуры" if symbol in self.control_keys: self.pressed[symbol] = True slot = self.key_to_num[symbol] if slot in self.slots: item_type = self.slots[slot] self.surface.window.client.send_apply_item(item_type) return True return False def draw(self): self.title.draw() Drawable.draw(self)
class EquipmentDisplay(Drawable, GuiElement): control_keys = [F1, F2, F3, F4, F5, F6, F7, F8] def __init__(self, surface): GuiElement.__init__(self, surface) Drawable.__init__(self) self.slots = {} self.key_to_num = {k: i + 1 for i, k in enumerate(self.control_keys)} self.x = 100 self.y = 300 self.dy = 40 self.tilenames = {} for item_type_name in dir(item_types): item_type = getattr(item_types, item_type_name) if hasattr(item_type, 'tilename'): tilename = item_type.tilename type_name = item_type.__name__ self.tilenames[type_name] = tilename self.title = Label(self.surface, 'Equipment:', self.x, self.y) self.tiles = [] def update(self, items_dict): self.tiles = [] yn = 0 n = 1 for item, number in items_dict.items(): point = Point(self.x, self.y - yn * self.dy) tilename = self.tilenames[item] width = self.surface.tiledict[tilename].width height = self.surface.tiledict[tilename].height shift = Point(width, height / 2) sprite = create_tile(point - shift, tilename) label = create_label("F-%s [%s]" % (n, number), point) self.tiles.append(label) self.tiles.append(sprite) self.slots[n] = item yn += 1 n += 1 def on_key_press(self, symbol, modifiers): "движение с помощью клавиатуры" if symbol in self.control_keys: self.pressed[symbol] = True slot = self.key_to_num[symbol] if slot in self.slots: item_type = self.slots[slot] self.surface.window.client.send_apply_item(item_type) return True return False def draw(self): self.title.draw() Drawable.draw(self)