changeset 71:58557a89ec86

Some tile improvements and stuff.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 11 Sep 2011 17:51:43 +0200
parents ff6fd5433d95
children 095914aee329
files data/levels/dev.txt mamba/level.py mamba/sprites.py mamba/widgets/level.py
diffstat 4 files changed, 45 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/data/levels/dev.txt	Sun Sep 11 17:43:51 2011 +0200
+++ b/data/levels/dev.txt	Sun Sep 11 17:51:43 2011 +0200
@@ -1,12 +1,12 @@
-dev
+lab
 XXXXXXXXXXX
-X.........X
-X.........X
+X...~....eX
+X..~~~....X
 X.........X
 X...XXX...X
-X...BaR...X
+X....a....X
 X...XXX...X
 X.........X
 X.........X
-X.........X
+XE........X
 XXXXXXXXXXX
--- a/mamba/level.py	Sun Sep 11 17:43:51 2011 +0200
+++ b/mamba/level.py	Sun Sep 11 17:51:43 2011 +0200
@@ -2,17 +2,22 @@
 Level for our shiny game.
 """
 
+from pygame.surface import Surface
 from pygame.sprite import RenderUpdates
 
 from mamba.data import load_file
-from mamba.sprites import tile_sizify, TileSprite, BaseSprite, DoorSprite
+from mamba.sprites import (tile_sizify, TileSprite, BaseSprite, DoorSprite,
+                           EntrySprite, ExitSprite, PuddleSprite)
 
 
 TILE_MAP = {
     '.': None,
-    'X': (TileSprite, 'randomtile'),
+    'X': (TileSprite, 'wall'),
     'R': (DoorSprite, 'red'),
     'B': (DoorSprite, 'blue'),
+    'e': (EntrySprite,),
+    'E': (ExitSprite,),
+    '~': (PuddleSprite,),
     }
 
 THING_MAP = {
@@ -27,6 +32,7 @@
 
     def load_tiles(self):
         self.tiles = {}
+        self.floor = TileSprite(self.name, 'floor').image
         for name, value in TILE_MAP.items():
             if value is not None:
                 value = (value[0], self.name) + value[1:]
@@ -64,6 +70,17 @@
         self.tiles = [[self.tileset.get_tile(tile, (x, y), self.tilegroup)
                        for x, tile in enumerate(row.strip())]
                       for y, row in enumerate(tiles_ascii)]
+        self.make_background()
+
+    def get_tile_size(self):
+        return (len(self.tiles[0]), len(self.tiles))
 
     def get_size(self):
-        return tile_sizify((len(self.tiles[0]), len(self.tiles)))
+        x, y = self.get_tile_size()
+        return tile_sizify((x, y))
+
+    def make_background(self):
+        sx, sy = self.get_tile_size()
+        self.background = Surface(self.get_size())
+        [self.background.blit(self.tileset.floor, tile_sizify((x, y)))
+         for x in range(sx) for y in range(sy)]
--- a/mamba/sprites.py	Sun Sep 11 17:43:51 2011 +0200
+++ b/mamba/sprites.py	Sun Sep 11 17:51:43 2011 +0200
@@ -33,8 +33,27 @@
         super(TileSprite, self).__init__(image_name, *groups)
 
 
+class SingleImageTileSprite(TileSprite):
+    def __init__(self, tileset, *groups):
+        super(SingleImageTileSprite, self).__init__(tileset, self.image_name)
+
+
 class DoorSprite(TileSprite):
     def __init__(self, tileset_name, colour, *groups):
         self.colour = colour
         image_name = 'door_%s' % (colour,)
         super(DoorSprite, self).__init__(tileset_name, image_name, *groups)
+
+
+class EntrySprite(SingleImageTileSprite):
+    # image_name = 'entry'
+    image_name = 'puddle-r'
+
+
+class ExitSprite(SingleImageTileSprite):
+    # image_name = 'exit'
+    image_name = 'puddle-tl'
+
+
+class PuddleSprite(SingleImageTileSprite):
+    image_name = 'puddle'
--- a/mamba/widgets/level.py	Sun Sep 11 17:43:51 2011 +0200
+++ b/mamba/widgets/level.py	Sun Sep 11 17:51:43 2011 +0200
@@ -10,6 +10,7 @@
         super(LevelWidget, self).__init__(level_rect)
 
     def draw(self, surface):
+        surface.blit(self.level.background, (0, 0))
         self.level.tilegroup.draw(surface)
 
     def event(self, event):