changeset 345:4708e86a9a3c

Remember start position on a level (a bit hacky)
author Stefano Rivera <stefano@rivera.za.net>
date Fri, 06 Sep 2013 13:42:42 +0200
parents 1d73867becbe
children 282113d86d75
files nagslang/screens/area.py nagslang/screens/menu.py nagslang/world.py
diffstat 3 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/nagslang/screens/area.py	Fri Sep 06 13:38:07 2013 +0200
+++ b/nagslang/screens/area.py	Fri Sep 06 13:42:42 2013 +0200
@@ -171,7 +171,7 @@
                 # Go to anther screen
                 self._disable_render = True
                 self.world.rooms += 1
-                self.world.level = ev.destination
+                self.world.level = (ev.destination, ev.dest_pos)
                 ScreenChange.post(ev.destination)
                 return
             # else we're teleporting within the screen, and just the
--- a/nagslang/screens/menu.py	Fri Sep 06 13:38:07 2013 +0200
+++ b/nagslang/screens/menu.py	Fri Sep 06 13:42:42 2013 +0200
@@ -46,7 +46,9 @@
             widget.draw(surface)
 
     def play(self):
-        ScreenChange.post(self.world.level)
+        level_name, pos = self.world.level
+        self.world.protagonist.set_position(pos)
+        ScreenChange.post(level_name)
 
     def restart(self):
         self.world.reset()
--- a/nagslang/world.py	Fri Sep 06 13:38:07 2013 +0200
+++ b/nagslang/world.py	Fri Sep 06 13:42:42 2013 +0200
@@ -22,9 +22,10 @@
         self.transformations = 0
         self.kills = 0
         self.rooms = 0
-        self.protagonist = Protagonist(pymunk.Space(), self, (350, 300))
         first_level = Level.list_levels()[0]
-        self.level = first_level
+        starting_position = (350, 300)
+        self.protagonist = Protagonist(pymunk.Space(), self, starting_position)
+        self.level = (first_level, starting_position)
 
     def _save_location(self):
         app = 'nagslang'