changeset 31:67218082cdbb

More level non-functionality.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 11 Sep 2011 14:25:55 +0200
parents cccf1675731c
children d6a882507f51
files mamba/level.py
diffstat 1 files changed, 19 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/level.py	Sun Sep 11 14:20:36 2011 +0200
+++ b/mamba/level.py	Sun Sep 11 14:25:55 2011 +0200
@@ -23,20 +23,31 @@
         else:
             self.image = load_image(image_path)
 
+    def set_tile_pos(self, tile_pos):
+        pos = (tile_pos[0] * TILE_SIZE[0],
+               tile_pos[1] * TILE_SIZE[1])
+        self.rect = self.image.get_rect().move(pos)
+
 
 class Tileset(object):
     def __init__(self, tileset_name):
         self.name = tileset_name
-        self.tiles = {}
+        self.load_tiles()
 
     def load_tiles(self):
+        self.tiles = {}
         for k, v in TILE_MAP.items():
             if v:
                 v = 'tiles/%s/%s.png' % (self.name, v)
-            self.tiles[k] = TileSprite(v)
+            self.tiles[k] = v
 
     def __getitem__(self, key):
-        return self.tiles[key]
+        return TileSprite(self.tiles[key])
+
+    def get_tile(self, key, tile_pos):
+        tile = self[key]
+        tile.set_tile_pos(tile_pos)
+        return tile
 
 
 class Level(object):
@@ -46,12 +57,15 @@
 
     def load_level_data(self):
         """
-        This file format it potentially yucky.
+        This file format is potentially yucky.
         """
         level_data = load_file('levels/%s.txt' % (self.level_name,))
-        tileset_name = level_data.readline()
+        tileset_name = level_data.readline().strip()
         self.tileset = Tileset(tileset_name)
         tiles_ascii = level_data.readlines()
+        self.tiles = [[self.tileset.get_tile(tile, (x, y))
+                       for x, tile in enumerate(row.strip())]
+                      for y, row in enumerate(tiles_ascii)]
         print "Tileset:", self.tileset.name
         print "Tiles:", tiles_ascii