Mercurial > nagslang
annotate nagslang/screens/base.py @ 698:020e73192fe2 default tip
Update debian urls
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Tue, 17 Mar 2020 22:38:52 +0200 |
parents | 943d93b47c77 |
children |
rev | line source |
---|---|
11
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
1 """A screen or area in which action happens.""" |
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
2 |
557
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
3 import sys |
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
4 |
18 | 5 from pygame import event |
11
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
6 import pymunk |
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
7 |
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
8 |
18 | 9 class Screen(object): |
11
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
10 |
276
3153196517fc
Move protagonist to the world
Neil Muller <drnlmuller@gmail.com>
parents:
180
diff
changeset
|
11 def __init__(self, name, world): |
37
4140780c21bc
Give screens a name and a world.
Simon Cross <hodgestar@gmail.com>
parents:
34
diff
changeset
|
12 self.name = name |
4140780c21bc
Give screens a name and a world.
Simon Cross <hodgestar@gmail.com>
parents:
34
diff
changeset
|
13 self.world = world |
11
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
14 self.space = pymunk.Space() |
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
15 |
37
4140780c21bc
Give screens a name and a world.
Simon Cross <hodgestar@gmail.com>
parents:
34
diff
changeset
|
16 def setup(self): |
20 | 17 """Perform setup based on the world state.""" |
18 pass | |
19 | |
20 def teardown(self): | |
21 pass | |
22 | |
18 | 23 def post_event(self, ev): |
24 event.post(ev) | |
25 | |
26 def handle_event(self, ev): | |
27 pass | |
28 | |
11
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
29 def render(self, surface): |
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
30 pass |
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
31 |
34 | 32 def tick(self, seconds): |
11
1cd05cfec375
Add start of screen / level / area object.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
33 """Step the given amount of time.""" |
557
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
34 try: |
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
35 self.space.step(seconds) |
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
36 except AssertionError: |
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
37 # TODO: Find the source of these |
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
38 print >> sys.stderr, ( |
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
39 'Caught a pymunk assertion error. ' |
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
40 "We don't know what causes these on level change. " |
943d93b47c77
Ignore the pymunk AssertionError on level change
Stefano Rivera <stefano@rivera.za.net>
parents:
276
diff
changeset
|
41 "Hopefully we can ignore them...") |