changeset 8:ea712aee4501

Made the player just a monster plugin
author Radomir Dopieralski <moindev@sheep.art.pl>
date Mon, 17 Dec 2007 01:19:57 +0100
parents 4f07624ec577
children 2a0fdca2802b
files avatar.py level.py map.txt monster/player.py
diffstat 4 files changed, 46 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/avatar.py	Mon Dec 17 01:07:31 2007 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-import pygame
-from pygame.locals import *
-
-from monster import Monster
-from util import *
-
-class Avatar(Monster):
-
-    def __init__(self, x=0, y=0, image_file="abi2.png"):
-        '''Create the avatar. Each one is likely to have different graphics.'''
-        self.facing = 0
-        self.step = 0
-        Monster.__init__(self, x, y, image_file)
-      
-    def update(self):
-        if self.step>0:
-            self.rect.move_ip(delta_x[self.facing]*3, delta_y[self.facing]*2)
-            self.z += delta_y[self.facing]*2
-            self.step -= 1
-        else:
-            self.facing = 3
-            self.step = 0
-            self.frame = 0
-#            self.z = self.y*16-12
-#            self.rect.topleft = (self.x*24, self.z)
-        self.anim = self.frames[self.facing-1]
-        self.animate(1)
-
-    def walk(self, direction):
-        self.facing = direction
-        self.step = 8
-        self.x += delta_x[self.facing]
-        self.y += delta_y[self.facing]
--- a/level.py	Mon Dec 17 01:07:31 2007 +0100
+++ b/level.py	Mon Dec 17 01:19:57 2007 +0100
@@ -17,8 +17,8 @@
         self.scrollpos = [-48,-32]
         self.map = Map(filename)
         self.cache = Cache()
+        self.monsters = {}
         self.background = self.create_map(self.map)
-
     
     def create_map(self, m):
         '''Create background and animations.'''
@@ -35,18 +35,22 @@
                     if image:
                         background.blit(image , (x*24+48, y*16+32))
                     for url in urls[1:]:
-                        if url=='joe.png':
-                            self.player = Avatar(x, y)
-                            self.add_sprite(self.player)
-                        else:
-                            module = __import__("monster.%s" % url, globals(), {}, ["Mob"])
-                            self.add_sprite(module.Mob(x, y))
-                            
+                        monster = self.create_monster(x,y, url)
+                        if url=='player':
+                            self.player = monster
                 x += 1
             x = 0
             y += 1
         return background
     
+    def create_monster(self, x, y, kind):
+        module = __import__("monster.%s" % kind, globals(), {}, ["Mob"])
+        monster = module.Mob(x, y)
+        self.monster = self
+        self.add_sprite(monster)
+        self.monsters[(x,y)] = monster
+        return monster
+    
     def add_sprite(self, sprite):
         self.animations.add(sprite)
         sprite.rect.move_ip(self.scrollpos[0], self.scrollpos[1])
--- a/map.txt	Mon Dec 17 01:07:31 2007 +0100
+++ b/map.txt	Mon Dec 17 01:19:57 2007 +0100
@@ -7,7 +7,7 @@
 B <floor.png> <jello>
 Z <floor.png> <jello>
 & <floor.png> <jello>
-@ <floor.png> <joe.png>
+@ <floor.png> <player>
 
 ::::::XXXXXXXXXXXXXX
 ::::::..::::XX::::::
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/monster/player.py	Mon Dec 17 01:19:57 2007 +0100
@@ -0,0 +1,33 @@
+import pygame
+from pygame.locals import *
+
+from monster import Monster
+from util import *
+
+class Mob(Monster):
+
+    def __init__(self, x=0, y=0, image_file="abi2.png"):
+        '''Create the avatar. Each one is likely to have different graphics.'''
+        self.facing = 0
+        self.step = 0
+        Monster.__init__(self, x, y, image_file)
+      
+    def update(self):
+        if self.step>0:
+            self.rect.move_ip(delta_x[self.facing]*3, delta_y[self.facing]*2)
+            self.z += delta_y[self.facing]*2
+            self.step -= 1
+        else:
+            self.facing = 3
+            self.step = 0
+            self.frame = 0
+#            self.z = self.y*16-12
+#            self.rect.topleft = (self.x*24, self.z)
+        self.anim = self.frames[self.facing-1]
+        self.animate(1)
+
+    def walk(self, direction):
+        self.facing = direction
+        self.step = 8
+        self.x += delta_x[self.facing]
+        self.y += delta_y[self.facing]