Mercurial > dw
changeset 48:9aabc4752467
Added HP gauge
| author | Radomir Dopieralski <moindev@sheep.art.pl> |
|---|---|
| date | Wed, 26 Dec 2007 12:46:23 +0100 |
| parents | 6de8cdb7647a |
| children | 763392fbc883 |
| files | lib/display.py lib/monster/player.py |
| diffstat | 2 files changed, 20 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/display.py Wed Dec 26 12:16:46 2007 +0100 +++ b/lib/display.py Wed Dec 26 12:46:23 2007 +0100 @@ -15,6 +15,16 @@ l.sort(z_compare) return l +class Gauge(pygame.sprite.Sprite): + def __init__(self, display): + pygame.sprite.Sprite.__init__(self) + self.base_image = pygame.image.load("data/image/gauge.png").convert() + self.image = self.base_image.copy() + self.image.set_alpha(128) + self.rect = self.image.get_rect() + self.rect.bottom = display.screen.get_rect().bottom + self.image.fill((128, 200, 0), Rect(11, 3, 10, 2)) + class Display: """Display-related code""" @@ -25,8 +35,10 @@ self.sprites = SortedUpdates() self.shadows = pygame.sprite.RenderUpdates() self.effects = pygame.sprite.RenderUpdates() + self.hud = pygame.sprite.RenderUpdates() self.scrollpos = [-48,-32] self.key_pressed = None + self.hud.add(Gauge(self)) def get_image(self, filename, cache={}): """Read an image from disk, with caching.""" @@ -104,7 +116,7 @@ source = rect.move(-self.scrollpos[0], -self.scrollpos[1]) source = source.clip(self.background.get_clip()) if source.width==0 or source.height==0: - patch = pygame.Surface((rect.width, rect.height+1)) + patch = pygame.Surface((rect.width, rect.height+2)) else: patch = self.background.subsurface(source) screen.blit(patch, rect) @@ -114,26 +126,31 @@ '''Redraw the whole level''' self.screen.blit(self.background, self.scrollpos) + self.hud.clear(self.screen, self.clear_func) self.effects.clear(self.screen, self.clear_func) self.sprites.clear(self.screen, self.clear_func) self.shadows.clear(self.screen, self.clear_func) self.shadows.draw(self.screen) self.sprites.draw(self.screen) self.effects.draw(self.screen) + self.hud.draw(self.screen) pygame.display.update() def update(self): '''Redraw and update all the animated parts''' - + + self.hud.clear(self.screen, self.clear_func) self.effects.clear(self.screen, self.clear_func) self.sprites.clear(self.screen, self.clear_func) self.shadows.clear(self.screen, self.clear_func) self.sprites.update() self.shadows.update() self.effects.update() + self.hud.update() dirty = self.shadows.draw(self.screen) dirty += self.sprites.draw(self.screen) dirty += self.effects.draw(self.screen) + dirty += self.hud.draw(self.screen) pygame.display.update(dirty) def show_frame(self):
--- a/lib/monster/player.py Wed Dec 26 12:16:46 2007 +0100 +++ b/lib/monster/player.py Wed Dec 26 12:46:23 2007 +0100 @@ -64,7 +64,7 @@ monster.hit() def hit(self, damage=5): - mesg.Mesg(self.display, self, "-%d" % damage, color=(255,0,0), delay=8) + mesg.Mesg(self.display, self, "-%d" % damage, color=(255,0,0), delay=4) pass def act(self):
