Mercurial > boomslang
annotate gamelib/state.py @ 22:8e709824306d
Add items and things.
author | Simon Cross <hodgestar+bzr@gmail.com> |
---|---|
date | Sun, 22 Aug 2010 17:52:34 +0200 |
parents | c9b124c2f5c6 |
children | 1e90a3e4618e |
rev | line source |
---|---|
7
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
1 """Utilities and base classes for dealing with scenes.""" |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
2 |
18
c9b124c2f5c6
Start of scene drawing framework.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
11
diff
changeset
|
3 from albow.resource import get_image, get_sound |
c9b124c2f5c6
Start of scene drawing framework.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
11
diff
changeset
|
4 |
11 | 5 |
9
6db58d31dd4c
Function for loading initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
7
diff
changeset
|
6 def initial_state(): |
6db58d31dd4c
Function for loading initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
7
diff
changeset
|
7 """Load the initial state.""" |
6db58d31dd4c
Function for loading initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
7
diff
changeset
|
8 state = State() |
6db58d31dd4c
Function for loading initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
7
diff
changeset
|
9 # TODO: populate state |
6db58d31dd4c
Function for loading initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
7
diff
changeset
|
10 return state |
6db58d31dd4c
Function for loading initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
7
diff
changeset
|
11 |
6db58d31dd4c
Function for loading initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
7
diff
changeset
|
12 |
7
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
13 class State(object): |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
14 """Complete game state. |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
15 |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
16 Game state consists of: |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
17 |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
18 * items |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
19 * scenes |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
20 """ |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
21 |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
22 def __init__(self): |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
23 # map of scene name -> Scene object |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
24 self.scenes = {} |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
25 # map of item name -> Item object |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
26 self.items = {} |
22 | 27 # map of item name -> Item object in inventory |
28 self.inventory = {} | |
7
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
29 |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
30 |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
31 class Scene(object): |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
32 """Base class for scenes.""" |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
33 |
22 | 34 FOLDER = None |
35 BACKGROUND = None | |
36 | |
7
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
37 def __init__(self): |
22 | 38 # map of thing names -> Thing objects |
39 self.things = {} | |
40 self._background = get_image([self.FOLDER, self.BACKGROUND]) | |
7
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
41 |
22 | 42 def draw_background(self, surface): |
18
c9b124c2f5c6
Start of scene drawing framework.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
11
diff
changeset
|
43 pass |
c9b124c2f5c6
Start of scene drawing framework.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
11
diff
changeset
|
44 |
22 | 45 def draw_sprites(self, surface): |
18
c9b124c2f5c6
Start of scene drawing framework.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
11
diff
changeset
|
46 pass |
c9b124c2f5c6
Start of scene drawing framework.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
11
diff
changeset
|
47 |
22 | 48 def draw(self, surface): |
49 self.draw_background(surface) | |
50 self.draw_sprites(surface) | |
18
c9b124c2f5c6
Start of scene drawing framework.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
11
diff
changeset
|
51 |
7
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
52 |
22 | 53 class Thing(object): |
54 """Base class for things in a scene that you can interact with.""" | |
7
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
55 |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
56 def __init__(self): |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
57 pass |
d7c9d8273d7f
Start of base classes for game state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff
changeset
|
58 |
22 | 59 def interact(self, item): |
60 pass | |
61 | |
62 | |
63 class Item(object): | |
64 """Base class for inventory items.""" | |
65 | |
66 def __init__(self): | |
67 pass | |
68 |