Mercurial > deevo
changeset 10:ef2b2a6db643
Start and finish screens
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sun, 26 Aug 2012 22:24:35 +0200 |
| parents | b811804ee104 |
| children | c302519386b5 |
| files | deevo/__main__.py deevo/finish.png deevo/intro.png deevo/over.png |
| diffstat | 4 files changed, 33 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/deevo/__main__.py Sun Aug 26 21:18:09 2012 +0200 +++ b/deevo/__main__.py Sun Aug 26 22:24:35 2012 +0200 @@ -23,13 +23,18 @@ key=lambda sprite: getattr(sprite, "depth", 0)) -def load_sheet(filename, width=32, height=None): - if height is None: - height = width +def load_image(filename): f = StringIO.StringIO(pkgutil.get_data('deevo', filename)) image = pygame.image.load(f) image = image.convert() image.set_colorkey((0xff, 0, 0xff)) + return image + + +def load_sheet(filename, width=32, height=None): + if height is None: + height = width + image = load_image(filename) w, h = image.get_size() images = [] for x in xrange(w // width): @@ -38,6 +43,7 @@ images.append(image.subsurface(rect)) return images + class Sprite(pygame.sprite.Sprite): sheet_index = 0 @@ -157,7 +163,7 @@ def __init__(self, (x, y), kind = 12, die_to=13, hp=10): super(Monster, self).__init__((x, y), kind) self.dzs = itertools.cycle([0, -1, -4, -3, -2, -1, 0, 1, 2, 3, 4, 1]) - self.dx, self.dy = -4, 0 + self.dx, self.dy = -8, 0 self.glow = Glow(self, (0, 28)) self.die_to = die_to self.hp = hp @@ -344,6 +350,19 @@ ])) + def image(self, filename): + screen = pygame.display.get_surface() + image = load_image(filename) + screen.blit(image, (0, 0)) + pygame.display.flip() + while True: + event = pygame.event.wait() + if event.type == pygame.QUIT: + raise SystemExit() + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_SPACE: + return + def main(self): screen = pygame.display.get_surface() background = screen.copy() @@ -360,7 +379,7 @@ nextelem = self.level.next() mx, my, Something = nextelem[:3] finish = False - while not finish or len(sprites) > 1: + while gunner.alive() and (not finish or len(sprites) > 1): while not finish and mx < progress + 800: sprites.add(Something((mx - progress, my), *nextelem[3:])) try: @@ -390,6 +409,14 @@ dirty += shadows.draw(screen) dirty += sprites.draw(screen) pygame.display.update(dirty) + if gunner.alive(): + self.image('finish.png') + else: + self.image('over.png') -Game().main() + +game = Game() +while True: + game.image('intro.png') + game.main()
