def drawlevel(self, level, fast=0): dest = self.drawsurface offset = self.drawoffset if not fast: r = self.poslevel r2 = dest.blit(self.imghud1, r, r).move(offset) else: r2 = None if self.lastlevel != level: self.lastlevel = level self.imglevel = score.render(level) self.poslevel = self.imglevel.get_rect() self.poslevel.center = 50, 565 r1 = dest.blit(self.imglevel, self.poslevel).move(offset) gfx.dirty2(r1, r2)
def __init__(self): self.imghud1 = gfx.load('hud.gif') self.imghud2 = gfx.load('hud2.gif') self.timepos = 24, 102 self.wolfrect = pygame.Rect(16, 57, 37, 19) self.timesize = 64, 382 self.timestep = self.timesize[1] / 1000.0 self.time = 0 self.drawsurface = gfx.surface self.drawoffset = 800, 0 self.imglives = pygame.Surface((1, miniship.get_height())) self.imglives.set_colorkey(0, pygame.RLEACCEL) self.imglevel = score.render(0) self.poslives = 10, 510 self.poslevel = pygame.Rect(15, 550, 1, 1) #changed later in drawlevel self.lastlives = 0 self.lastlevel = 0
def buildlist(self): self.clearlist() clr = 160, 200, 250 clr2 = 200, 200, 200 clr3 = 100, 160, 255 offsetx, offsety = 120, 110 sizey = 85 self.clearlist() self.gamelist = [] cur = 0 if len(players.players) < game.max_players: if self.current[0] == cur: c = clr3 else: c = clr t = namefont.text(c, '-= New Player =-', (400, offsety), 'center') self.gamelist.append(('', t)) offsety += sizey cur += 1 for p in players.players: if gfx.surface.get_bitsize() > 8: img = pygame.Surface((450, 55)) else: img = pygame.Surface((450, 55), 0, 32) if self.current[0] == cur: if self.current[1] == 1: c = 200, 50, 50 else: c = clr3 else: c = clr subimgs = [] t, r = namefont.text(c, p.name) subimgs.append((t, (8, -4))) subimg, r = textfont.text(clr2, 'Level: ') r1 = subimg.get_rect() r1.bottomleft = 15, 54 subimgs.append((subimg, r1)) subimg = score.render(p.start_level()) r = subimg.get_rect() r.bottomleft = r1.right, 52 subimgs.append((subimg, r)) if self.current[0] == cur: subimg = levels.preview(p.start_level()) r = subimg.get_rect().move(280, 6) subimgs.append((subimg, r)) if p.lives: subimgs.append( smallfont.text((150, 150, 150), "Lives Used: %d" % p.lives, (440, 20), "topright", bgd=(30, 30, 30))) if p.skips: subimgs.append( smallfont.text((150, 150, 150), "Levels Skipped: %d" % p.skips, (440, 34), "topright", bgd=(30, 30, 30))) #progress progress = pygame.Surface((5, 42)) pct = int((p.start_level() / float(levels.maxlevels())) * 42) progress.fill((250, 50, 50), (0, 42 - pct, 5, pct)) r = progress.get_rect() pygame.draw.rect(progress, (255, 255, 255), (0, 0, 5, 42), 1) subimgs.append((progress, r.move(272, 6))) if self.current[0] == cur: img.fill((30, 30, 30)) s = img.get_size() pygame.draw.rect(img, (50, 50, 50), ((0, 0), s), 1) subimgs.reverse() for sub, pos in subimgs: img.blit(sub, pos) else: bgd = 0, 0, 0 img.fill(bgd) subimgs.reverse() for sub, pos in subimgs: img.blit(sub, pos) img.set_colorkey(bgd, pygame.RLEACCEL) img = img.convert() rect = img.get_rect().move(offsetx, offsety) images = [p.guid, (img, rect)] img2 = delimage rect2 = img2.get_rect().move(offsetx + 500, offsety + 20) images.append((img2, rect2)) self.gamelist.append(images) offsety += sizey cur += 1