# HG changeset patch # User Simon Cross # Date 1315761911 -7200 # Node ID 7ce2d2d8381a9bbb4b9f5fb4c026c6efcf592989 # Parent c65046b5bafd155c257d8dce298740b0f8a74904 Refactor BaseSprite. diff -r c65046b5bafd -r 7ce2d2d8381a mamba/level.py --- a/mamba/level.py Sun Sep 11 19:24:59 2011 +0200 +++ b/mamba/level.py Sun Sep 11 19:25:11 2011 +0200 @@ -29,7 +29,7 @@ } THING_MAP = { - 'a': (BaseSprite, 'snake/snake-head-r'), + 'a': (BaseSprite, 'common', 'snake/snake-head-r'), } diff -r c65046b5bafd -r 7ce2d2d8381a mamba/snake.py --- a/mamba/snake.py Sun Sep 11 19:24:59 2011 +0200 +++ b/mamba/snake.py Sun Sep 11 19:25:11 2011 +0200 @@ -1,6 +1,7 @@ """The player snake object.""" from mamba.sprites import BaseSprite +from mamba import mutators class Snake(BaseSprite): @@ -8,12 +9,20 @@ UP, DOWN, LEFT, RIGHT = range(4) def __init__(self, tile_pos, orientation): - super(Snake, self).__init__("snake/" + super(Snake, self).__init__(image_name="snake/" "snake-head-mouth-open-r") + self.load_images() self.set_tile_pos(tile_pos) self.set_orientation(orientation) + def load_images(self): + pass + def set_orientation(self, orientation): self._orientation = orientation print ["UP", "DOWN", "LEFT", "RIGHT"][orientation] # TODO: update image + + +class Head(object): + pass diff -r c65046b5bafd -r 7ce2d2d8381a mamba/sprites.py --- a/mamba/sprites.py Sun Sep 11 19:24:59 2011 +0200 +++ b/mamba/sprites.py Sun Sep 11 19:25:11 2011 +0200 @@ -13,15 +13,16 @@ class BaseSprite(Sprite): tileset = 'common' - def __init__(self, image_name, *groups): - super(BaseSprite, self).__init__(*groups) - self.image_name = image_name - self.load_image(image_name, self.tileset) + def __init__(self, tileset=None, image_name=None): + super(BaseSprite, self).__init__() + if tileset is not None: + self.tileset = tileset + if image_name is not None: + self.image = self.load_image(image_name) - 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)) + def load_image(self, image_name, mutators=()): + return load_image('tiles/%s/%s.png' % (self.tileset, image_name), + mutators) def set_tile_pos(self, tile_pos): self.tile_pos = tile_pos @@ -29,29 +30,28 @@ class TileSprite(BaseSprite): - def __init__(self, tileset_name, image_name, *groups): - self.tileset = tileset_name - super(TileSprite, self).__init__(image_name, *groups) + def __init__(self, tileset, image_name): + super(TileSprite, self).__init__(tileset, image_name) class SingleImageTileSprite(TileSprite): - def __init__(self, tileset, *groups): + def __init__(self, tileset): super(SingleImageTileSprite, self).__init__(tileset, self.image_name) class DoorSprite(TileSprite): - def __init__(self, tileset_name, colour, *groups): + def __init__(self, tileset_name, colour): self.colour = colour image_name = 'door_%s' % (colour,) - super(DoorSprite, self).__init__(tileset_name, image_name, *groups) + super(DoorSprite, self).__init__(tileset_name, image_name) class EntrySprite(SingleImageTileSprite): image_name = 'puddle-r' - def __init__(self, tileset_name, direction, *groups): + def __init__(self, tileset_name, direction): self.direction = direction - super(EntrySprite, self).__init__(tileset_name, direction) + super(EntrySprite, self).__init__(tileset_name) class ExitSprite(SingleImageTileSprite):