# HG changeset patch # User Jeremy Thurgood # Date 1315750352 -7200 # Node ID e730ec8b82e8c130d70613c595b70c5a2f3a4574 # Parent 671d027f1b71a133b7aa6c858805b6c5083ebb7f Some doors. diff -r 671d027f1b71 -r e730ec8b82e8 data/levels/dev.txt --- 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 diff -r 671d027f1b71 -r e730ec8b82e8 data/tiles/dev/door_blue.png Binary file data/tiles/dev/door_blue.png has changed diff -r 671d027f1b71 -r e730ec8b82e8 data/tiles/dev/door_red.png Binary file data/tiles/dev/door_red.png has changed diff -r 671d027f1b71 -r e730ec8b82e8 mamba/level.py --- 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) diff -r 671d027f1b71 -r e730ec8b82e8 mamba/sprites.py --- 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)