Mercurial > mamba
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):