Mercurial > deevo
changeset 11:c302519386b5
Add player character death
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sun, 26 Aug 2012 22:39:40 +0200 |
| parents | ef2b2a6db643 |
| children | 65e88f78418e |
| files | deevo/__main__.py |
| diffstat | 1 files changed, 27 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/deevo/__main__.py Sun Aug 26 22:24:35 2012 +0200 +++ b/deevo/__main__.py Sun Aug 26 22:39:40 2012 +0200 @@ -172,6 +172,9 @@ dummy = Dummy() dummy.rect = pygame.Rect((0, 0, 64, 64)) dummy.rect.midbottom = self.rect.midbottom + if (pygame.sprite.collide_rect(self.shadow, gunner.shadow) and + pygame.sprite.collide_mask(self.shadow, gunner.shadow)): + gunner.dead = True if gunner.ray.alive() and pygame.sprite.collide_rect(gunner.ray, dummy): self.glow.brightness = 192 if not self.glow.alive(): @@ -185,6 +188,8 @@ self.depth += self.dy if self.rect.right < 0 or self.rect.top > 600 or self.rect.bottom < 0: self.kill() + if self.rect.right < 0: + gunner.dead = True class Glow(Sprite): @@ -235,7 +240,7 @@ def update(self): if self.brightness > 0: - self.brightness -= 16 + self.brightness -= 48 self.image.set_alpha(self.brightness) else: self.kill() @@ -250,6 +255,7 @@ def __init__(self): super(Gunner, self).__init__() + self.image = self.image.subsurface(self.image.get_rect()) self.rect.topleft = (128, 312) self.dzs = itertools.cycle([0, -2, -1, 0, 1, 2]) self.dx = 0 @@ -258,9 +264,18 @@ self.ddy = 0 self.depth = self.rect.top self.ray = Ray(self) - shadows.add(Shadow(self, (-8, 12))) + self.shadow = Shadow(self, (-8, 12)) + shadows.add(self.shadow) + self.dead = False + self.opacity = 256 def update(self): + if self.dead: + self.opacity -= 16 + if self.opacity <= 0: + self.kill() + self.image.set_alpha(self.opacity) + return keys = pygame.key.get_pressed() if keys[pygame.K_SPACE]: self.ray.brightness = 192 @@ -320,7 +335,6 @@ def __init__(self): pygame.display.set_mode((800, 600)) self.load() - self.level() def load(self): global SHEET @@ -330,7 +344,7 @@ SHEET[18].set_alpha(64) SHEET[19].set_alpha(64) - def level(self): + def new_level(self): global shadows global sprites global gunner @@ -361,7 +375,14 @@ raise SystemExit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: - return + break + while True: + event = pygame.event.wait() + if event.type == pygame.QUIT: + raise SystemExit() + elif event.type == pygame.KEYUP: + if event.key == pygame.K_SPACE: + break def main(self): screen = pygame.display.get_surface() @@ -419,4 +440,5 @@ game = Game() while True: game.image('intro.png') + game.new_level() game.main()
