Mercurial > mamba
annotate 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 |
rev | line source |
---|---|
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 | |
98 | 16 def __init__(self, tileset=None, image_name=None): |
17 super(BaseSprite, self).__init__() | |
18 if tileset is not None: | |
19 self.tileset = tileset | |
20 if image_name is not None: | |
21 self.image = self.load_image(image_name) | |
56 | 22 |
98 | 23 def load_image(self, image_name, mutators=()): |
24 return load_image('tiles/%s/%s.png' % (self.tileset, image_name), | |
25 mutators) | |
50 | 26 |
27 def set_tile_pos(self, tile_pos): | |
81
c8d6ca296884
Better level entry points.
Jeremy Thurgood <firxen@gmail.com>
parents:
71
diff
changeset
|
28 self.tile_pos = tile_pos |
50 | 29 self.rect = self.image.get_rect().move(tile_sizify(tile_pos)) |
30 | |
31 | |
32 class TileSprite(BaseSprite): | |
98 | 33 def __init__(self, tileset, image_name): |
34 super(TileSprite, self).__init__(tileset, image_name) | |
50 | 35 |
36 | |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
37 class SingleImageTileSprite(TileSprite): |
98 | 38 def __init__(self, tileset): |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
39 super(SingleImageTileSprite, self).__init__(tileset, self.image_name) |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
40 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
41 |
56 | 42 class DoorSprite(TileSprite): |
98 | 43 def __init__(self, tileset_name, colour): |
57 | 44 self.colour = colour |
56 | 45 image_name = 'door_%s' % (colour,) |
98 | 46 super(DoorSprite, self).__init__(tileset_name, image_name) |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
47 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
48 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
49 class EntrySprite(SingleImageTileSprite): |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
50 image_name = 'puddle-r' |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
51 |
98 | 52 def __init__(self, tileset_name, direction): |
81
c8d6ca296884
Better level entry points.
Jeremy Thurgood <firxen@gmail.com>
parents:
71
diff
changeset
|
53 self.direction = direction |
98 | 54 super(EntrySprite, self).__init__(tileset_name) |
81
c8d6ca296884
Better level entry points.
Jeremy Thurgood <firxen@gmail.com>
parents:
71
diff
changeset
|
55 |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
56 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
57 class ExitSprite(SingleImageTileSprite): |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
58 # image_name = 'exit' |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
59 image_name = 'puddle-tl' |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
60 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
61 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
62 class PuddleSprite(SingleImageTileSprite): |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
63 image_name = 'puddle' |