Mercurial > mamba
comparison mamba/sprites.py @ 98:7ce2d2d8381a
Refactor BaseSprite.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sun, 11 Sep 2011 19:25:11 +0200 |
parents | c8d6ca296884 |
children | 5b92ff941de3 |
comparison
equal
deleted
inserted
replaced
97:c65046b5bafd | 98:7ce2d2d8381a |
---|---|
11 | 11 |
12 | 12 |
13 class BaseSprite(Sprite): | 13 class BaseSprite(Sprite): |
14 tileset = 'common' | 14 tileset = 'common' |
15 | 15 |
16 def __init__(self, image_name, *groups): | 16 def __init__(self, tileset=None, image_name=None): |
17 super(BaseSprite, self).__init__(*groups) | 17 super(BaseSprite, self).__init__() |
18 self.image_name = image_name | 18 if tileset is not None: |
19 self.load_image(image_name, self.tileset) | 19 self.tileset = tileset |
20 if image_name is not None: | |
21 self.image = self.load_image(image_name) | |
20 | 22 |
21 def load_image(self, image_name, tileset): | 23 def load_image(self, image_name, mutators=()): |
22 if tileset is None: | 24 return load_image('tiles/%s/%s.png' % (self.tileset, image_name), |
23 tileset = self.tileset | 25 mutators) |
24 self.image = load_image('tiles/%s/%s.png' % (tileset, image_name)) | |
25 | 26 |
26 def set_tile_pos(self, tile_pos): | 27 def set_tile_pos(self, tile_pos): |
27 self.tile_pos = tile_pos | 28 self.tile_pos = tile_pos |
28 self.rect = self.image.get_rect().move(tile_sizify(tile_pos)) | 29 self.rect = self.image.get_rect().move(tile_sizify(tile_pos)) |
29 | 30 |
30 | 31 |
31 class TileSprite(BaseSprite): | 32 class TileSprite(BaseSprite): |
32 def __init__(self, tileset_name, image_name, *groups): | 33 def __init__(self, tileset, image_name): |
33 self.tileset = tileset_name | 34 super(TileSprite, self).__init__(tileset, image_name) |
34 super(TileSprite, self).__init__(image_name, *groups) | |
35 | 35 |
36 | 36 |
37 class SingleImageTileSprite(TileSprite): | 37 class SingleImageTileSprite(TileSprite): |
38 def __init__(self, tileset, *groups): | 38 def __init__(self, tileset): |
39 super(SingleImageTileSprite, self).__init__(tileset, self.image_name) | 39 super(SingleImageTileSprite, self).__init__(tileset, self.image_name) |
40 | 40 |
41 | 41 |
42 class DoorSprite(TileSprite): | 42 class DoorSprite(TileSprite): |
43 def __init__(self, tileset_name, colour, *groups): | 43 def __init__(self, tileset_name, colour): |
44 self.colour = colour | 44 self.colour = colour |
45 image_name = 'door_%s' % (colour,) | 45 image_name = 'door_%s' % (colour,) |
46 super(DoorSprite, self).__init__(tileset_name, image_name, *groups) | 46 super(DoorSprite, self).__init__(tileset_name, image_name) |
47 | 47 |
48 | 48 |
49 class EntrySprite(SingleImageTileSprite): | 49 class EntrySprite(SingleImageTileSprite): |
50 image_name = 'puddle-r' | 50 image_name = 'puddle-r' |
51 | 51 |
52 def __init__(self, tileset_name, direction, *groups): | 52 def __init__(self, tileset_name, direction): |
53 self.direction = direction | 53 self.direction = direction |
54 super(EntrySprite, self).__init__(tileset_name, direction) | 54 super(EntrySprite, self).__init__(tileset_name) |
55 | 55 |
56 | 56 |
57 class ExitSprite(SingleImageTileSprite): | 57 class ExitSprite(SingleImageTileSprite): |
58 # image_name = 'exit' | 58 # image_name = 'exit' |
59 image_name = 'puddle-tl' | 59 image_name = 'puddle-tl' |