changeset 26:c66e886826b3

Death animation
author Radomir Dopieralski <moindev@sheep.art.pl>
date Tue, 18 Dec 2007 01:05:25 +0100
parents 61592a80729c
children 9897f946b8cc
files lib/game.py monster/__init__.py monster/player.py
diffstat 3 files changed, 32 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/lib/game.py	Mon Dec 17 20:10:40 2007 +0100
+++ b/lib/game.py	Tue Dec 18 01:05:25 2007 +0100
@@ -28,10 +28,9 @@
         
     def main_loop(self):
         self.level.refresh(self.screen)
-
+        av = self.level.player
         hscroll = 0
         vscroll = 0
-
         key_pressed = None
         while 1:
             # Update the screen
@@ -51,16 +50,10 @@
                 self.level.scroll(hs, vs)
                 hscroll -= hs
                 vscroll -= vs
-                self.level.refresh(self.screen)
-            self.level.update(self.screen)
-            self.clock.tick(15)
-            # Process input
-            for event in pygame.event.get():
-                if event.type==QUIT:
-                    return
-                elif event.type==KEYDOWN:
-                    key_pressed = event.key
-            av = self.level.player
+                self.level.refresh(self.screen)                
+            else:
+                self.level.update(self.screen)
+
             if av.rect.left<48:
                 hscroll += 48-av.rect.left
             if av.rect.right>self.screen.get_width()-48:
@@ -69,11 +62,15 @@
                 vscroll += 48-av.rect.top
             if av.rect.bottom>self.screen.get_height()-48:
                 vscroll += self.screen.get_height()-48-av.rect.bottom
-                
-                
-                
-            if key_pressed==K_SPACE:
-                Mesg(av, "-5", color=(255,0 ,0))
+
+            self.clock.tick(15)            
+            # Process input
+            for event in pygame.event.get():
+                if event.type==QUIT:
+                    return
+                elif event.type==KEYDOWN:
+                    key_pressed = event.key
+
             if av.step==0:
                 keys = pygame.key.get_pressed()
                 if keys[K_UP] or key_pressed==K_UP:
--- a/monster/__init__.py	Mon Dec 17 20:10:40 2007 +0100
+++ b/monster/__init__.py	Tue Dec 18 01:05:25 2007 +0100
@@ -2,7 +2,7 @@
 from pygame.locals import *
 import os
 
-
+from mesg import Mesg
 from shadow import Shadow
 from util import *
 
@@ -75,6 +75,21 @@
             self.delay += 1
             self.image = frames[self.frame]
 
+    def anim_die(self):
+        self.step -= 1
+        if self.step==15:
+            self.rect.move_ip(0, -4)
+            self.h += 4        
+        if self.step<=0:
+            self.die()
+        else:
+            self.image.set_alpha(self.step*32)
+
+    def hit(self):
+        Mesg(self, "-5", color=(255,0,0))
+        if self.anim!= self.anim_die:
+            self.anim = self.anim_die
+            self.step = 8
     
     def anim(self):
         self.animate(self.frames[0], 3)
@@ -92,3 +107,4 @@
 
     def update(self):
         self.anim()
+        
--- a/monster/player.py	Mon Dec 17 20:10:40 2007 +0100
+++ b/monster/player.py	Tue Dec 18 01:05:25 2007 +0100
@@ -57,4 +57,4 @@
         self.rotate(direction)
         self.step = 4
         self.anim = self.anim_attack
-        Mesg(monster, "miss", color=(255,255,0))
+        monster.hit()