Mercurial > mamba
annotate mamba/level.py @ 21:f76c3f033772
Release early, release broken. Level stuff.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 11 Sep 2011 14:03:00 +0200 |
parents | 66ae99f6903e |
children | 67218082cdbb |
rev | line source |
---|---|
8
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
1 """ |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
2 Level for our shiny game. |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
3 """ |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
4 |
21
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
5 from pygame.sprite import Sprite |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
6 from pygame.surface import Surface |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
7 |
8
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
8 from mamba.data import load_file, load_image |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
9 |
21
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
10 TILE_SIZE = (20, 20) |
8
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
11 |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
12 TILE_MAP = { |
21
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
13 '.': None, |
8
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
14 'a': 'randomtile', |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
15 } |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
16 |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
17 |
21
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
18 class TileSprite(Sprite): |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
19 def __init__(self, image_path, *groups): |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
20 super(TileSprite, self).__init__(*groups) |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
21 if image_path is None: |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
22 self.image = Surface(TILE_SIZE) |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
23 else: |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
24 self.image = load_image(image_path) |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
25 |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
26 |
8
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
27 class Tileset(object): |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
28 def __init__(self, tileset_name): |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
29 self.name = tileset_name |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
30 self.tiles = {} |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
31 |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
32 def load_tiles(self): |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
33 for k, v in TILE_MAP.items(): |
21
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
34 if v: |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
35 v = 'tiles/%s/%s.png' % (self.name, v) |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
36 self.tiles[k] = TileSprite(v) |
8
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
37 |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
38 def __getitem__(self, key): |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
39 return self.tiles[key] |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
40 |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
41 |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
42 class Level(object): |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
43 def __init__(self, level_name): |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
44 self.level_name = level_name |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
45 self.load_level_data() |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
46 |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
47 def load_level_data(self): |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
48 """ |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
49 This file format it potentially yucky. |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
50 """ |
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
51 level_data = load_file('levels/%s.txt' % (self.level_name,)) |
21
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
52 tileset_name = level_data.readline() |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
53 self.tileset = Tileset(tileset_name) |
8
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
54 tiles_ascii = level_data.readlines() |
21
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
55 print "Tileset:", self.tileset.name |
8
66ae99f6903e
First stab at tile/level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
56 print "Tiles:", tiles_ascii |
21
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
57 |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
58 def get_size(self): |
f76c3f033772
Release early, release broken. Level stuff.
Jeremy Thurgood <firxen@gmail.com>
parents:
8
diff
changeset
|
59 pass |