50
|
1 from pygame.sprite import Sprite
|
|
2
|
|
3 from mamba.data import load_image
|
|
4 from mamba.constants import TILE_SIZE
|
|
5
|
|
6
|
|
7 def tile_sizify(pos):
|
|
8 ts_x, ts_y = TILE_SIZE
|
|
9 p_x, p_y = pos
|
|
10 return (ts_x * p_x, ts_y * p_y)
|
|
11
|
|
12
|
|
13 class BaseSprite(Sprite):
|
|
14 tileset = 'common'
|
|
15
|
56
|
16 def __init__(self, image_name, *groups):
|
|
17 super(BaseSprite, self).__init__(*groups)
|
|
18 self.image_name = image_name
|
|
19 self.load_image(image_name, self.tileset)
|
|
20
|
|
21 def load_image(self, image_name, tileset):
|
50
|
22 if tileset is None:
|
|
23 tileset = self.tileset
|
|
24 self.image = load_image('tiles/%s/%s.png' % (tileset, image_name))
|
|
25
|
|
26 def set_tile_pos(self, tile_pos):
|
|
27 self.rect = self.image.get_rect().move(tile_sizify(tile_pos))
|
|
28
|
|
29
|
|
30 class TileSprite(BaseSprite):
|
|
31 def __init__(self, tileset_name, image_name, *groups):
|
56
|
32 self.tileset = tileset_name
|
|
33 super(TileSprite, self).__init__(image_name, *groups)
|
50
|
34
|
|
35
|
56
|
36 class DoorSprite(TileSprite):
|
|
37 def __init__(self, tileset_name, colour, *groups):
|
57
|
38 self.colour = colour
|
56
|
39 image_name = 'door_%s' % (colour,)
|
|
40 super(DoorSprite, self).__init__(tileset_name, image_name, *groups)
|