Mercurial > mamba
annotate mamba/sprites.py @ 121:f670ef33ae2e
Comment SingleImageTileSprite convention
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Sun, 11 Sep 2011 21:09:52 +0200 |
parents | 87acd3ddc972 |
children | 9bef49d6db86 |
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 | |
105
87acd3ddc972
Tell sprites what their tile char is.
Jeremy Thurgood <firxen@gmail.com>
parents:
104
diff
changeset
|
16 def __init__(self, tile_char=None, tileset=None, image_name=None): |
98 | 17 super(BaseSprite, self).__init__() |
105
87acd3ddc972
Tell sprites what their tile char is.
Jeremy Thurgood <firxen@gmail.com>
parents:
104
diff
changeset
|
18 self.tile_char = tile_char |
98 | 19 if tileset is not None: |
20 self.tileset = tileset | |
21 if image_name is not None: | |
22 self.image = self.load_image(image_name) | |
56 | 23 |
98 | 24 def load_image(self, image_name, mutators=()): |
25 return load_image('tiles/%s/%s.png' % (self.tileset, image_name), | |
26 mutators) | |
50 | 27 |
28 def set_tile_pos(self, tile_pos): | |
81
c8d6ca296884
Better level entry points.
Jeremy Thurgood <firxen@gmail.com>
parents:
71
diff
changeset
|
29 self.tile_pos = tile_pos |
50 | 30 self.rect = self.image.get_rect().move(tile_sizify(tile_pos)) |
31 | |
32 | |
33 class TileSprite(BaseSprite): | |
104 | 34 def __init__(self, tileset, **kw): |
35 kw['tileset'] = tileset | |
36 super(TileSprite, self).__init__(**kw) | |
50 | 37 |
38 | |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
39 class SingleImageTileSprite(TileSprite): |
121
f670ef33ae2e
Comment SingleImageTileSprite convention
Neil Muller <drnlmuller@gmail.com>
parents:
105
diff
changeset
|
40 |
f670ef33ae2e
Comment SingleImageTileSprite convention
Neil Muller <drnlmuller@gmail.com>
parents:
105
diff
changeset
|
41 image_name = None # subclasses will override this |
f670ef33ae2e
Comment SingleImageTileSprite convention
Neil Muller <drnlmuller@gmail.com>
parents:
105
diff
changeset
|
42 |
104 | 43 def __init__(self, **kw): |
44 kw.setdefault('image_name', self.image_name) | |
45 super(SingleImageTileSprite, self).__init__(**kw) | |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
46 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
47 |
56 | 48 class DoorSprite(TileSprite): |
104 | 49 def __init__(self, colour, **kw): |
57 | 50 self.colour = colour |
56 | 51 image_name = 'door_%s' % (colour,) |
104 | 52 kw.setdefault('image_name', image_name) |
53 super(DoorSprite, self).__init__(**kw) | |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
54 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
55 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
56 class EntrySprite(SingleImageTileSprite): |
104 | 57 image_name = 'entrance-1' |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
58 |
104 | 59 def __init__(self, direction, **kw): |
81
c8d6ca296884
Better level entry points.
Jeremy Thurgood <firxen@gmail.com>
parents:
71
diff
changeset
|
60 self.direction = direction |
104 | 61 super(EntrySprite, self).__init__(**kw) |
81
c8d6ca296884
Better level entry points.
Jeremy Thurgood <firxen@gmail.com>
parents:
71
diff
changeset
|
62 |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
63 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
64 class ExitSprite(SingleImageTileSprite): |
104 | 65 image_name = 'exit-1' |
71
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
66 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
67 |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
68 class PuddleSprite(SingleImageTileSprite): |
58557a89ec86
Some tile improvements and stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
57
diff
changeset
|
69 image_name = 'puddle' |