changeset 56:e730ec8b82e8

Some doors.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 11 Sep 2011 16:12:32 +0200
parents 671d027f1b71
children cd5ad2c45e2d
files data/levels/dev.txt data/tiles/dev/door_blue.png data/tiles/dev/door_red.png mamba/level.py mamba/sprites.py
diffstat 5 files changed, 22 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/data/levels/dev.txt	Sun Sep 11 16:04:09 2011 +0200
+++ b/data/levels/dev.txt	Sun Sep 11 16:12:32 2011 +0200
@@ -3,7 +3,7 @@
 X........X
 X........X
 X........X
-X........X
+XXBXXXXRXX
 X........X
 X...a....X
 X........X
Binary file data/tiles/dev/door_blue.png has changed
Binary file data/tiles/dev/door_red.png has changed
--- a/mamba/level.py	Sun Sep 11 16:04:09 2011 +0200
+++ b/mamba/level.py	Sun Sep 11 16:12:32 2011 +0200
@@ -5,16 +5,18 @@
 from pygame.sprite import RenderUpdates
 
 from mamba.data import load_file
-from mamba.sprites import tile_sizify, TileSprite, ThingSprite
+from mamba.sprites import tile_sizify, TileSprite, ThingSprite, DoorSprite
 
 
 TILE_MAP = {
     '.': None,
-    'X': 'randomtile',
+    'X': (TileSprite, 'randomtile'),
+    'R': (DoorSprite, 'red'),
+    'B': (DoorSprite, 'blue'),
     }
 
 THING_MAP = {
-    'a': (ThingSprite, 'snake-head-r'),
+    'a': (ThingSprite, 'snake/snake-head-r'),
     }
 
 
@@ -27,7 +29,7 @@
         self.tiles = {}
         for name, value in TILE_MAP.items():
             if value is not None:
-                value = (TileSprite, self.name, value)
+                value = (value[0], self.name) + value[1:]
             self.tiles[name] = value
         self.tiles.update(THING_MAP)
 
--- a/mamba/sprites.py	Sun Sep 11 16:04:09 2011 +0200
+++ b/mamba/sprites.py	Sun Sep 11 16:12:32 2011 +0200
@@ -13,7 +13,12 @@
 class BaseSprite(Sprite):
     tileset = 'common'
 
-    def load_image(self, image_name, tileset=None):
+    def __init__(self, image_name, *groups):
+        super(BaseSprite, self).__init__(*groups)
+        self.image_name = image_name
+        self.load_image(image_name, self.tileset)
+
+    def load_image(self, image_name, tileset):
         if tileset is None:
             tileset = self.tileset
         self.image = load_image('tiles/%s/%s.png' % (tileset, image_name))
@@ -24,11 +29,15 @@
 
 class TileSprite(BaseSprite):
     def __init__(self, tileset_name, image_name, *groups):
-        super(TileSprite, self).__init__(*groups)
-        self.load_image(image_name, tileset_name)
+        self.tileset = tileset_name
+        super(TileSprite, self).__init__(image_name, *groups)
 
 
 class ThingSprite(BaseSprite):
-    def __init__(self, image_name, *groups):
-        super(ThingSprite, self).__init__(*groups)
-        self.load_image(image_name)
+    pass
+
+
+class DoorSprite(TileSprite):
+    def __init__(self, tileset_name, colour, *groups):
+        image_name = 'door_%s' % (colour,)
+        super(DoorSprite, self).__init__(tileset_name, image_name, *groups)