Ejemplo n.º 1
0
    def drawhelp(self, name, pos):
        if Help.has_key(name):
            text = Help[name]
            lines = text.splitlines()
            for x in range(1, len(lines)):
                if lines[x] == '-':
                    lines[x] = "\n\n"
            title = lines[0]
            text = ' '.join(lines[1:])
        else:
            title = name
            text = "no help available"

        self.img = fonts[0].textbox((255, 240, 200), text, 260, (50, 100, 50),
                                    30)
        r = self.img.get_rect()
        titleimg, titlepos = fonts[1].text((255, 240, 200), title,
                                           (r.width / 2, 10))
        self.img.blit(titleimg, titlepos)
        r.topleft = pos
        r = r.clamp(game.arena)
        alphaimg = pygame.Surface(self.img.get_size())
        alphaimg.fill((50, 100, 50))
        alphaimg.set_alpha(192)
        gfx.surface.blit(alphaimg, r)
        self.img.set_colorkey((50, 100, 50))
        self.rect = gfx.surface.blit(self.img, r)
        gfx.dirty(self.rect)
Ejemplo n.º 2
0
    def run(self):
        r = self.background(self.images[0][1])
        gfx.dirty(r)

        self.moveship()
        gfx.updatestars(self.background, gfx)

        if not self.done:
            self.drawlist()
            for img in self.images:
                r = gfx.surface.blit(img[0], img[1])
                gfx.dirty(r)
        else:
            if gfx.rect.colliderect(self.images[0][1]) and not self.aborted:
                if self.current[0] >= 0:
                    g = self.gamelist[self.current[0]]
                    r = gfx.surface.blit(g[1][0], g[1][1])
                    gfx.dirty(r)
                for img in self.images:
                    r = gfx.surface.blit(img[0], img[1])
                    gfx.dirty(r)
            else:
                self.clearlist()
                if self.aborted:
                    game.handler = self.prevhandler
                else:
                    game.handler = gameplay.GamePlay(self.prevhandler)

            for img in self.images[1:]:
                r = self.background(img[1])
                gfx.dirty(r)
Ejemplo n.º 3
0
 def drawlist(self):
     """
     Desenha as opcoes do menu
     """
     for vals in self.gamelist:
         for v in vals:
             gfx.dirty(gfx.surface.blit(*v))
Ejemplo n.º 4
0
    def run(self):
        r = self.background(self.images[0][1])
        gfx.dirty(r)

        self.moveship()
        gfx.updatestars(self.background, gfx)

        if not self.done:
            self.drawlist()
            for img in self.images:
                r = gfx.surface.blit(img[0], img[1])
                gfx.dirty(r)
        else:
            if gfx.rect.colliderect(self.images[0][1]) and not self.aborted:
                if self.current[0] >= 0:
                    g = self.gamelist[self.current[0]]
                    r = gfx.surface.blit(g[1][0], g[1][1])
                    gfx.dirty(r)
                for img in self.images:
                    r = gfx.surface.blit(img[0], img[1])
                    gfx.dirty(r)
            else:
                self.clearlist()
                if self.aborted:
                    game.handler = self.prevhandler
                else:
                    game.handler = gameplay.GamePlay(self.prevhandler)

            for img in self.images[1:]:
                r = self.background(img[1])
                gfx.dirty(r)
Ejemplo n.º 5
0
 def starting(self):
     """
     Funcao de abertura do menu: Carrega a musica principal e
     desenha o logo do jogo.
     """
     snd.playmusic('aster2_sw.xm')
     gfx.dirty(gfx.surface.blit(self.logo, self.logorect))
Ejemplo n.º 6
0
 def cleanup(self):
     """
     Limpa toda a area do jogo, quando deve-se finalizar o jogo
     ou voltar para a tela de opcoes.
     """
     r = self.bgfill(0, (0, 0, game.size[0], game.size[1]))
     gfx.dirty(r)
Ejemplo n.º 7
0
 def draw(self, gfx):
     percent = 1.0 - (self.clocks / self.life)
     c1 = (percent * 0.4 + 0.2) * 255
     c2 = c1 / 4
     color = (c1, c2, c2)
     pygame.draw.line(gfx.surface, color, self.start, self.end, 3)
     gfx.dirty(self.rect)
Ejemplo n.º 8
0
 def starting(self):
     if self.startmusic:
         self.startmusic = 0
         self.song = random.choice(Songs)
         snd.playmusic(*self.song)
         self.songtime = pygame.time.get_ticks()
     gfx.dirty(self.background(gfx.rect))
Ejemplo n.º 9
0
    def starting(self):
        snd.playmusic('aster2_sw.xm')

        gfx.dirty(gfx.surface.blit(self.logo, self.logorect))
        gfx.dirty(gfx.surface.blit(self.bigship, self.bigshiprect))

        self.fame = self.renderhall()
Ejemplo n.º 10
0
 def starting(self):
     if self.startmusic:
         self.startmusic = 0
         self.song = random.choice(Songs)
         snd.playmusic(*self.song)
         self.songtime = pygame.time.get_ticks()
     gfx.dirty(self.background(gfx.rect))
Ejemplo n.º 11
0
    def starting(self):
        snd.playmusic('aster2_sw.xm')

        gfx.dirty(gfx.surface.blit(self.logo, self.logorect))
        gfx.dirty(gfx.surface.blit(self.bigship, self.bigshiprect))

        self.fame = self.renderhall()
Ejemplo n.º 12
0
 def cleanup(self):
     """
     Limpa toda a area do jogo, quando deve-se finalizar o jogo
     ou voltar para a tela de opcoes.
     """
     r = self.bgfill(0, (0, 0, game.size[0], game.size[1]))
     gfx.dirty(r)
Ejemplo n.º 13
0
 def drawlist(self):
     """
     Desenha as opcoes do menu
     """
     for vals in self.gamelist:
         for v in vals:
             gfx.dirty(gfx.surface.blit(*v))
Ejemplo n.º 14
0
    def gameover_start(self):
        snd.play("gameover")
        self.ticks = 0
        if not self.gamewon:
            if self.curwave:
                for wave in self.curwave:
                    for baddy in wave.enemies:
                        baddy.dead = 1
                        self.background(baddy.lastrect)
                        gfx.dirty(baddy.rect)

        for x in self.popobjs:
            x.dead = 1
        for x in self.powerupobjs:
            x.dead = 1

        B = self.background
        for l in self.objlists:
            for o in l:
                o.erase(B)
        if self.map:
            self.map.erase(B)
        if self.curwave:
            [wave.erase(B) for wave in self.curwave]
        self.runobjects(self.objlists)
        self.cleanup()
Ejemplo n.º 15
0
    def drawhelp(self, name, pos):
        if Help.has_key(name):
            text = Help[name]
            lines = text.splitlines()
            for x in range(1, len(lines)):
                if lines[x] == '-':
                    lines[x] = "\n\n"
            title = lines[0]
            text = ' '.join(lines[1:])
        else:
            title = name
            text = "no help available"

        self.img = fonts[0].textbox((255, 240, 200), text, 260, (50, 100, 50), 30)
        r = self.img.get_rect()
        titleimg, titlepos = fonts[1].text((255, 240, 200), title, (r.width/2, 10))
        self.img.blit(titleimg, titlepos)
        r.topleft = pos
        r = r.clamp(game.arena)
        alphaimg = pygame.Surface(self.img.get_size())
        alphaimg.fill((50, 100, 50))
        alphaimg.set_alpha(192)
        gfx.surface.blit(alphaimg, r)
        self.img.set_colorkey((50, 100, 50))
        self.rect = gfx.surface.blit(self.img, r)
        gfx.dirty(self.rect)
Ejemplo n.º 16
0
 def clearlist(self):
     """
     Apaga a lista de preferencias 
     (atualizacao grafica do menu)
     """
     for vals in self.gamelist:
         for v in vals:
             gfx.dirty(self.background(v[1]))
Ejemplo n.º 17
0
 def clearlist(self):
     """
     Apaga a lista de preferencias 
     (atualizacao grafica do menu)
     """
     for vals in self.gamelist:
         for v in vals:
             gfx.dirty(self.background(v[1]))
Ejemplo n.º 18
0
 def quit(self):
     """
     Funcao de saida do menu de creditos
     """
     gfx.dirty(self.background(gfx.rect))
     game.handler = self.prevhandler
     self.done = 1
     snd.play('select_choose')
Ejemplo n.º 19
0
 def quit(self):
     """
     Funcao de saida do menu de creditos
     """
     gfx.dirty(self.background(gfx.rect))
     game.handler = self.prevhandler
     self.done = 1
     snd.play('select_choose')
Ejemplo n.º 20
0
 def quit(self):
     snd.play('chimeout')
     if snd.music:
         snd.tweakmusicvolume()
     if self.rect:
         r = self.rect.inflate(2, 2)
         r = self.prevhandler.background(r)
         gfx.dirty(r)
     game.handler = self.prevhandler
     self.done = 1
Ejemplo n.º 21
0
 def starting(self):
     """
     Funcao de pre-inicializacao do jogo.
     """
     if self.startmusic:
         self.startmusic = 0
         self.song = random.choice(Songs)
         snd.playmusic(*self.song)
         self.songtime = pygame.time.get_ticks()
     gfx.dirty(self.background(gfx.rect))
Ejemplo n.º 22
0
 def draw(self, gfx):
     frame = int(self.rotate)%self.numframes
     if self.popped:
         img = popimages[int(self.popped)]
     elif self.firsttouch > 0.0:
         img = self.imglists[0][frame]
     else:
         img = self.imglists[self.touches][frame]
     r = gfx.surface.blit(img, self.rect)
     gfx.dirty(r)
Ejemplo n.º 23
0
    def run(self):
        if self.done: return
        for line in self.text:
            img, r = line
            gfx.surface.blit(img, r)
            gfx.dirty(r)

        ratio = game.clockticks / 25
        speedadjust = max(ratio, 1.0)
        self.time += speedadjust
Ejemplo n.º 24
0
 def erase(self, background):
     """
     Limpa uma area do mapa.
     """
     if self.lastrect:
         background(self.lastrect)
         gfx.dirty(self.lastrect)
     else:
         background(self.rect)
         gfx.dirty(self.rect)
Ejemplo n.º 25
0
 def starting(self):
     """
     Funcao de pre-inicializacao do jogo.
     """
     if self.startmusic:
         self.startmusic = 0
         self.song = random.choice(Songs)
         snd.playmusic(*self.song)
         self.songtime = pygame.time.get_ticks()
     gfx.dirty(self.background(gfx.rect))
Ejemplo n.º 26
0
 def quit(self):
     snd.play('chimeout')
     if snd.music:
         snd.tweakmusicvolume()
     if self.rect:
         r = self.rect.inflate(2, 2)
         r = self.prevhandler.background(r)
         gfx.dirty(r)
     game.handler = self.prevhandler
     self.done = 1
Ejemplo n.º 27
0
 def clearitem(self, item, dirty=0):
     """
     Limpa a area de desenho do item do menu.
     Parametros:
     item  - item do menu
     dirty - se houve atualizacao grafica do item do menu (necessario para atualizar a tela)
     """
     r = self.background(item.rect)
     if dirty:
         gfx.dirty(r)
Ejemplo n.º 28
0
    def run(self):
        if self.done: return
        for line in self.text:
            img, r = line
            gfx.surface.blit(img, r)
            gfx.dirty(r)

        ratio = game.clockticks / 25
        speedadjust = max(ratio, 1.0)
        self.time += speedadjust
Ejemplo n.º 29
0
 def draw(self, gfx):
     frame = int(self.rotate) % self.numframes
     if self.popped:
         img = popimages[int(self.popped)]
     elif self.firsttouch > 0.0:
         img = self.imglists[0][frame]
     else:
         img = self.imglists[self.touches][frame]
     r = gfx.surface.blit(img, self.rect)
     gfx.dirty(r)
Ejemplo n.º 30
0
    def quit(self):
        import gamemenu
        gfx.dirty(self.background(gfx.rect))
        for b in self.blocks:
            r = b[0].get_rect().move(b[1])
            gfx.dirty(self.background(r))

        if load_finished_status >= 0:
            game.handler = gamemenu.GameMenu(self.prevhandler)
        else:
            game.handler = self.prevhandler
Ejemplo n.º 31
0
    def quit(self):
        import gamemenu
        gfx.dirty(self.background(gfx.rect))
        for b in self.blocks:
            r = b[0].get_rect().move(b[1])
            gfx.dirty(self.background(r))

        if load_finished_status >= 0:
            game.handler = gamemenu.GameMenu(self.prevhandler)
        else:
            game.handler = self.prevhandler
Ejemplo n.º 32
0
 def recalcname(self):
     length = len(game.player.name)
     for x in range(game.name_maxlength):
         l = nameletters[x]
         r = self.background(l[0])
         gfx.dirty(r)
         if x < length:
             if not l[2]:
                 l[2] = thefont.render(game.player.name[x], 1, (200, 250, 200), (0, 0, 0)).convert()
                 l[2].set_colorkey((0, 0, 0), RLEACCEL)
         else:
             l[2] = None
Ejemplo n.º 33
0
 def recalcname(self):
     length = len(game.player.name)
     for x in range(game.name_maxlength):
         l = nameletters[x]
         r = self.background(l[0])
         gfx.dirty(r)
         if x < length:
             if not l[2]:
                 l[2] = thefont.render(game.player.name[x], 1, (200, 250, 200), (0, 0, 0)).convert()
                 l[2].set_colorkey((0, 0, 0), pygame.RLEACCEL)
         else:
             l[2] = None
Ejemplo n.º 34
0
 def gameover_start(self):
     snd.play("gameover")
     self.ticks = 5
     if not self.gamewon:
         self.textobjs.append(objtext.Text("Game Over"))
         for g in self.guardobjs:
             if not g.killed:
                 g.killed = 1
                 explode = objexplode.Explode(g.rect.center)
                 self.staticobjs.append(explode)
                 # argh, force a cleanup
                 self.background(g.lastrect)
                 gfx.dirty(g.lastrect)
Ejemplo n.º 35
0
 def levelup_tick(self):
     if not self.donelevelup:
         c = levelupcolors[self.ticks % 2]
         self.ticks += 1
         img, r = font.text(c, "Level Up!", (game.size[0] / 2 - 15, game.size[1] / 2 - 30), bgd=(0, 67, 171))
         r = gfx.surface.blit(img, r)
         gfx.dirty(r)
         if self.ticks == 100:
             self.donelevelup = 1
             self.ticks = 0
             self.cleanup()
             self.changestate("levelstart")
             self.levelchanged = 0
Ejemplo n.º 36
0
 def drawitem(self, item, lit):
     if not lit:
         gfx.surface.blit(item.img_off, item.smallrect)
     else:
         lite = images[0]
         glowval = (math.sin(self.glow) + 2.5) * 50.0
         if self.switchclock == 2:
             glowval /= 2
         if gfx.surface.get_bytesize()>1:
             lite.set_alpha(glowval)
         gfx.surface.blit(lite, item.rect)
         gfx.surface.blit(item.img_on, item.rect)
     gfx.dirty(item.rect)
Ejemplo n.º 37
0
 def gameover_start(self):
     snd.play('gameover')
     self.ticks = 5
     if not self.gamewon:
         self.textobjs.append(objtext.Text('Game Over'))
         for g in self.guardobjs:
             if not g.killed:
                 g.killed = 1
                 explode = objexplode.Explode(g.rect.center)
                 self.staticobjs.append(explode)
                 #argh, force a cleanup
                 self.background(g.lastrect)
                 gfx.dirty(g.lastrect)
Ejemplo n.º 38
0
 def drawitem(self, item, lit):
     if not lit:
         gfx.surface.blit(item.img_off, item.smallrect)
     else:
         lite = images[0]
         glowval = (math.sin(self.glow) + 2.5) * 50.0
         if self.switchclock == 2:
             glowval /= 2
         if gfx.surface.get_bytesize()>1:
             lite.set_alpha(glowval)
         gfx.surface.blit(lite, item.rect)
         gfx.surface.blit(item.img_on, item.rect)
     gfx.dirty(item.rect)
Ejemplo n.º 39
0
    def run(self):
        if self.rect:
            self.background(self.rect)
        gfx.updatestars(self.background, gfx)

        gfx.dirty(gfx.surface.blit(self.img_logo, (30, 25)))
        gfx.dirty(gfx.surface.blit(self.img_powered, (510, 490)))

        for b in self.blocks:
            gfx.dirty(gfx.surface.blit(*b))

        bar = pygame.Rect(self.rect)
        if load_total:
            bar.width = (float(load_current)/float(load_total)) * bar.width
            gfx.surface.fill((5, 50, 5), bar)
        r = pygame.Rect(self.rect.left, self.rect.bottom-2, self.rect.width, 2)
        gfx.surface.fill((20, 80, 30), r)
        gfx.surface.blit(self.text, self.textrect)
        gfx.dirty(self.rect)

        now = pygame.time.get_ticks()
        #we let the screen stay up for at about 1 second
        if not self.thread.isAlive():
            if load_finished_status >= 0:
                if now-self.starttime > 1200:
                    self.quit()
            else:
                if not self.handlederror:
                    msg = ('Fatal Error Loading Resources', load_finished_type, load_finished_message, 'Press Any Key To Quit')
                    self.buildblock(msg)
                    self.handlederror = 1
                if self.gotfinishinput:
                    self.quit()
Ejemplo n.º 40
0
    def run(self):
        if self.rect:
            self.background(self.rect)
        gfx.updatestars(self.background, gfx)

        gfx.dirty(gfx.surface.blit(self.img_logo, (30, 25)))
        gfx.dirty(gfx.surface.blit(self.img_powered, (510, 490)))

        for b in self.blocks:
            gfx.dirty(gfx.surface.blit(*b))

        bar = Rect(self.rect)
        if load_total:
            bar.width = (float(load_current) / float(load_total)) * bar.width
            gfx.surface.fill((5, 50, 5), bar)
        r = Rect(self.rect.left, self.rect.bottom - 2, self.rect.width, 2)
        gfx.surface.fill((20, 80, 30), r)
        gfx.surface.blit(self.text, self.textrect)
        gfx.dirty(self.rect)

        now = pygame.time.get_ticks()
        #we let the screen stay up for at about 1 second
        if not self.thread.is_alive():
            if load_finished_status >= 0:
                if now - self.starttime > 1200:
                    self.quit()
            else:
                if not self.handlederror:
                    msg = ('Fatal Error Loading Resources', load_finished_type,
                           load_finished_message, 'Press Any Key To Quit')
                    self.buildblock(msg)
                    self.handlederror = 1
                if self.gotfinishinput:
                    self.quit()
Ejemplo n.º 41
0
    def run(self):
        if self.needdraw:
            self.needdraw = 0
            self.drawhelp(self.helpname, self.helppos)

        ratio = game.clockticks / 25
        speedadjust = max(ratio, 1.0)
        self.time += speedadjust

        if not self.done:
            pts = (self.rect.topleft, self.rect.topright,
                  self.rect.bottomright, self.rect.bottomleft)
            s = gfx.surface
            clr = 40, 80, 40
            gfx.dirty(pygame.draw.line(s, clr, pts[0], pts[1]))
            gfx.dirty(pygame.draw.line(s, clr, pts[1], pts[2]))
            gfx.dirty(pygame.draw.line(s, clr, pts[2], pts[3]))
            gfx.dirty(pygame.draw.line(s, clr, pts[3], pts[0]))
            off = int(self.time * 0.9)
            r = 255
            g = int(220 + math.cos(self.time * .2) * 30)
            b = int(180 + math.cos(self.time * .2) * 65)
            clr = r, g, b
            gfx.drawvertdashline(s, pts[0], pts[3], clr, 10, off)
            gfx.drawvertdashline(s, pts[1], pts[2], clr, 10, -off)
            gfx.drawhorzdashline(s, pts[0], pts[1], clr, 10, off)
            gfx.drawhorzdashline(s, pts[3], pts[2], clr, 10, -off)
Ejemplo n.º 42
0
 def start(self):
     snd.play('explode', 1.0, 350)
     aliveguards = []
     for g in self.state.guardobjs:
         if not g.killed:
             aliveguards.append(g)
     if aliveguards:
         g = random.choice(aliveguards)
         g.killed = 1
         explode = objexplode.Explode(g.rect.center)
         self.state.staticobjs.append(explode)
         #argh, force a cleanup
         self.state.background(g.lastrect)
         gfx.dirty(g.lastrect)
Ejemplo n.º 43
0
    def run(self):
        for cred in self.text:
            r = cred[1]
            self.background(r)
            gfx.dirty(r)

        ratio = game.clockticks / 25
        speedadjust = max(ratio, 1.0)
        self.time += speedadjust

        gfx.updatestars(self.background, gfx)

        if not self.done:
            frame = int(self.time * .5) % len(self.r)
            surf = gfx.surface

            self.background(r.move(50, 400))
            self.background(r.move(300, 400))
            self.background(r.move(550, 400))
            gfx.dirty(surf.blit(self.r[frame], (50, 400)))
            gfx.dirty(surf.blit(self.g[frame], (300, 400)))
            gfx.dirty(surf.blit(self.b[frame], (550, 400)))

            for cred, pos in self.text:
                gfx.surface.blit(cred, pos)
Ejemplo n.º 44
0
    def run(self):
        if self.needdraw:
            self.needdraw = 0
            self.drawhelp(self.helpname, self.helppos)

        ratio = game.clockticks / 25
        speedadjust = max(ratio, 1.0)
        self.time += speedadjust

        if not self.done:
            pts = (self.rect.topleft, self.rect.topright,
                   self.rect.bottomright, self.rect.bottomleft)
            s = gfx.surface
            clr = 40, 80, 40
            gfx.dirty(pygame.draw.line(s, clr, pts[0], pts[1]))
            gfx.dirty(pygame.draw.line(s, clr, pts[1], pts[2]))
            gfx.dirty(pygame.draw.line(s, clr, pts[2], pts[3]))
            gfx.dirty(pygame.draw.line(s, clr, pts[3], pts[0]))
            off = int(self.time * 0.9)
            r = 255
            g = int(220 + math.cos(self.time * .2) * 30)
            b = int(180 + math.cos(self.time * .2) * 65)
            clr = r, g, b
            gfx.drawvertdashline(s, pts[0], pts[3], clr, 10, off)
            gfx.drawvertdashline(s, pts[1], pts[2], clr, 10, -off)
            gfx.drawhorzdashline(s, pts[0], pts[1], clr, 10, off)
            gfx.drawhorzdashline(s, pts[3], pts[2], clr, 10, -off)
Ejemplo n.º 45
0
    def quit(self):
        """
        Funcao de saida da tela de apresentacao do jogo.
        """
        import gamemenu
        gfx.dirty(self.background(gfx.rect))
        for b in self.blocks:
            r = b[0].get_rect().move(b[1])
            gfx.dirty(self.background(r))

        if load_finished_status >= 0:
            game.handler = gamemenu.GameMenu(self.prevhandler)
        else:
            game.handler = self.prevhandler
Ejemplo n.º 46
0
    def run(self):
        """
        Loop de execucao deste handler.
        """
        if self.rect:
            self.background(self.rect)
            
        gfx.dirty(gfx.surface.blit(self.img_logo, (30, 25)))
        gfx.dirty(gfx.surface.blit(self.img_powered, (510, 490)))

        for b in self.blocks:
            gfx.dirty(gfx.surface.blit(*b))

        bar = Rect(self.rect)
        if load_total:
            bar.width = (float(load_current)/float(load_total)) * bar.width
            gfx.surface.fill((5, 50, 5), bar)
        r = Rect(self.rect.left, self.rect.bottom-2, self.rect.width, 2)
        gfx.surface.fill((20, 80, 30), r)
        gfx.surface.blit(self.text, self.textrect)
        gfx.dirty(self.rect)

        now = pygame.time.get_ticks()
        #Mantem a tela de apresentacao do jogo por 1 segundo
        if not self.thread.isAlive():
            if load_finished_status >= 0:
                if now-self.starttime > 1200:
                    self.quit()
            else:
                if not self.handlederror:
                    msg = ('Fatal Error Loading Resources', load_finished_type, load_finished_message, 'Press Any Key To Quit')
                    self.buildblock(msg)
                    self.handlederror = 1
                if self.gotfinishinput:
                    self.quit()
Ejemplo n.º 47
0
    def run(self):
        self.step += 0.5
        self.starframe = (self.starframe + self.starinc) % 5

        if not self.done:
            self.clearletter(self.letter, self.letter)
        else:
            for img in self.fontimages:
                self.clearletter(img, self.letter)

        gfx.updatestars(self.background, gfx)

        if not self.done:
            r = gfx.surface.blit(self.stars[self.starframe], self.starrect)
            gfx.dirty(r)
            for img in self.fontimages:
                self.drawletter(img, self.letter)
            for img in self.images:
                r = gfx.surface.blit(img[0], img[1])
                gfx.dirty(r)
            self.drawname()
        else:
            for img in self.fontimages:
                gfx.dirty(img[1])
            for img in self.images:
                r = self.background(img[1])
                gfx.dirty(r)
            self.recalcname()
Ejemplo n.º 48
0
    def run(self):
        for cred in self.text:
            r = cred[1]
            self.background(r)
            gfx.dirty(r)

        ratio = game.clockticks / 25
        speedadjust = max(ratio, 1.0)
        self.time += speedadjust

        gfx.updatestars(self.background, gfx)

        if not self.done:
            frame = int(self.time * .5) % len(self.r)
            surf = gfx.surface

            self.background(r.move(50, 400))
            self.background(r.move(300, 400))
            self.background(r.move(550, 400))
            gfx.dirty(surf.blit(self.r[frame], (50, 400)))
            gfx.dirty(surf.blit(self.g[frame], (300, 400)))
            gfx.dirty(surf.blit(self.b[frame], (550, 400)))

            for cred, pos in self.text:
                gfx.surface.blit(cred, pos)
Ejemplo n.º 49
0
    def quit(self):
        """
        Funcao de saida da tela de apresentacao do jogo.
        """
        import gamemenu
        gfx.dirty(self.background(gfx.rect))
        for b in self.blocks:
            r = b[0].get_rect().move(b[1])
            gfx.dirty(self.background(r))

        if load_finished_status >= 0:
            game.handler = gamemenu.GameMenu(self.prevhandler)
        else:
            game.handler = self.prevhandler
Ejemplo n.º 50
0
    def run(self):
        self.step += 0.5
        self.starframe = (self.starframe + self.starinc) % 5

        if not self.done:
            self.clearletter(self.letter, self.letter)
        else:
            for img in self.fontimages:
                self.clearletter(img, self.letter)

        gfx.updatestars(self.background, gfx)

        if not self.done:
            r = gfx.surface.blit(self.stars[self.starframe], self.starrect)
            gfx.dirty(r)
            for img in self.fontimages:
                self.drawletter(img, self.letter)
            for img in self.images:
                r = gfx.surface.blit(img[0], img[1])
                gfx.dirty(r)
            self.drawname()
        else:
            for img in self.fontimages:
                gfx.dirty(img[1])
            for img in self.images:
                r = self.background(img[1])
                gfx.dirty(r)
            self.recalcname()
Ejemplo n.º 51
0
 def getready_tick(self):
     self.ticks += 1
     if not self.donegetready:
         img = getready_images[self.getreadyimage]
         r = img.get_rect()
         r = gfx.surface.blit(img, (game.size[0] / 2 - (r.width / 2), game.size[1] / 2 - (r.height / 2)))
         gfx.dirty(r)
         if not self.ticks % 40:
             self.getreadyimage = (self.getreadyimage + 1) % len(getready_images)
         if self.ticks == 200:
             self.donegetready = 1
             self.ticks = 0
             self.cleanup()
     else:
         self.changestate("gamestart")
Ejemplo n.º 52
0
 def draw(self, gfx):
     if not self.active:
         r = self.drawsurface.fill((0, 67, 171), self.rect)
         gfx.dirty(r)
     else:
         if not self.dead:
             img = None
             frame = int(self.frame) % 3
             if self.shield:
                 img = shieldbg[self.shield-1]
             else:
                 img = self.image[frame]                
             self.drawsurface.blit(img, self.rect)
             gfx.dirty2(self.rect, self.lastrect)
             self.lastrect = Rect(self.rect)
Ejemplo n.º 53
0
 def draw(self, gfx):
     if not self.active:
         r = self.drawsurface.fill((0, 67, 171), self.rect)
         gfx.dirty(r)
     else:
         if not self.dead:
             img = None
             frame = int(self.frame) % 3
             if self.shield:
                 img = shieldbg[self.shield - 1]
             else:
                 img = self.image[frame]
             self.drawsurface.blit(img, self.rect)
             gfx.dirty2(self.rect, self.lastrect)
             self.lastrect = Rect(self.rect)
Ejemplo n.º 54
0
 def levelup_tick(self):
     if not self.donelevelup:
         c = levelupcolors[self.ticks % 2]
         self.ticks += 1
         img, r = font.text(c,
                            'Level Up!',
                            (game.size[0] / 2 - 15, game.size[1] / 2 - 30),
                            bgd=(0, 67, 171))
         r = gfx.surface.blit(img, r)
         gfx.dirty(r)
         if self.ticks == 100:
             self.donelevelup = 1
             self.ticks = 0
             self.cleanup()
             self.changestate('levelstart')
             self.levelchanged = 0
Ejemplo n.º 55
0
 def start(self):
     snd.play('explode', 1.0, 350)
     aliveguards = []
     for g in self.state.guardobjs:
         if not g.killed:
             aliveguards.append(g)
     if aliveguards:
         g = random.choice(aliveguards)
         g.killed = 1
         laser = objlaser.Laser(self.state.player.rect.center, g.rect.center)
         self.state.staticobjs.append(laser)
         explode = objexplode.Explode(g.rect.center)
         self.state.staticobjs.append(explode)
         #argh, force a cleanup
         self.state.background(g.lastrect)
         gfx.dirty(g.lastrect)
Ejemplo n.º 56
0
 def drawitem(self, item, selected):
     """
     Desenha um item do menu.
     Parametros:
     item      - item do menu a desenhar.
     selected  - item esta selecionado.
     """
     if not selected:
         gfx.surface.blit(item.img, item.rect)
         gfx.dirty(item.rect)
     else:
         gfx.surface.blit(item.img, item.rect)
         gfx.dirty(item.rect)
         gfx.surface.blit(self.select, self.selectrect)
         self.last_selectrect = Rect(self.selectrect)
         gfx.dirty2(self.selectrect, self.last_selectrect)
Ejemplo n.º 57
0
 def drawname(self):
     hicolor = (int((math.sin(self.step)+1)*50+80),)*3
     locolor = 50, 50, 50
     lolocolor = 25, 25, 25
     curletter = len(game.player.name)
     for x in range(game.name_maxlength):
         l = nameletters[x]
         col = (x == curletter) and hicolor or locolor
         if l[2]: col = lolocolor
         r = gfx.surface.fill(col, l[1])
         gfx.dirty(r)
         if l[2]:
             r = l[2].get_rect()
             r.centerx = l[0].centerx
             r.bottom = l[0].bottom
             r = gfx.surface.blit(l[2], r)
             gfx.dirty(r)
Ejemplo n.º 58
0
    def drawhelp(self, name, pos):
        title = 'Paused'
        text = 'Press Any Key To Continue'

        self.img = fonts[0].textbox((255, 240, 200), text, 200, (50, 100, 50), 50)
        r = self.img.get_rect()
        titleimg, titlepos = fonts[1].text((255, 240, 200), title, (r.width//2, 10))
        self.img.blit(titleimg, titlepos)
        r.topleft = pos
        r = r.clamp(game.arena)
        alphaimg = pygame.Surface(self.img.get_size())
        alphaimg.fill((50, 100, 50))
        alphaimg.set_alpha(192)
        gfx.surface.blit(alphaimg, r)
        self.img.set_colorkey((50, 100, 50))
        self.rect = gfx.surface.blit(self.img, r)
        gfx.dirty(self.rect)