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'