changeset 25:fe87d828d093

Very basic enemy support.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 03 Apr 2011 18:04:36 +0200
parents 3d70de522b11
children c0545443e242
files data/levels/level1.json skaapsteker/level.py skaapsteker/sprites/base.py skaapsteker/sprites/enemies.py
diffstat 4 files changed, 35 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/data/levels/level1.json	Sun Apr 03 18:03:03 2011 +0200
+++ b/data/levels/level1.json	Sun Apr 03 18:04:36 2011 +0200
@@ -63,5 +63,8 @@
         "..........................................................................",
         "..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..",
         ".........................................................................."
+    ],
+    "enemies": [
+        {"type": "Dummy", "pos": [2, 2], "direction": "left" }
     ]
 }
\ No newline at end of file
--- a/skaapsteker/level.py	Sun Apr 03 18:03:03 2011 +0200
+++ b/skaapsteker/level.py	Sun Apr 03 18:04:36 2011 +0200
@@ -3,6 +3,7 @@
 from pygame import Rect, Surface, constants
 
 import data
+from sprites import enemies
 
 
 TILE_SIZE = (64, 64)
@@ -40,6 +41,7 @@
         self.level_data = json.loads(data.load('levels/' + leveldef + '.json').read())
         self.build_background()
         self.build_tiles()
+        self.setup_enemies()
 
 
     def build_background(self):
@@ -57,6 +59,12 @@
         print "level:", self.level_size
 
 
+    def setup_enemies(self):
+        self.enemies = []
+        for enemy in self.level_data['enemies']:
+            self.enemies.append(enemies.get_enemy(enemy))
+
+
     def tile_pos(self, x, y):
         return (x * TILE_SIZE[0], y * TILE_SIZE[1])
 
--- a/skaapsteker/sprites/base.py	Sun Apr 03 18:03:03 2011 +0200
+++ b/skaapsteker/sprites/base.py	Sun Apr 03 18:04:36 2011 +0200
@@ -4,7 +4,14 @@
 
 
 class Monster(Sprite):
-    pass
+    def __init__(self, pos, **opts):
+        Sprite.__init__(self)
+        self.starting_tile_pos = pos
+        self.setup(**opts)
+
+
+    def setup(self):
+        pass
 
 
 class NPC(Sprite):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/skaapsteker/sprites/enemies.py	Sun Apr 03 18:04:36 2011 +0200
@@ -0,0 +1,16 @@
+from base import Monster
+
+
+def get_enemy(enemydef):
+    enemydef = enemydef.copy()
+    monster_class = enemydef.pop('type')
+    pos = enemydef.pop('pos')
+    return globals()[monster_class](pos, **enemydef)
+
+
+class Dummy(Monster):
+    def setup(self, direction):
+        print "Dummy monster at %r, facing %s" % (self.starting_tile_pos, direction)
+
+
+