Changeset 276:3153196517fc
- Timestamp:
- 09/05/13 11:09:14 (9 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- nagslang
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
nagslang/engine.py
r252 r276 25 25 } 26 26 self._world.load() 27 self.change_screen('menu' , None)27 self.change_screen('menu') 28 28 # Dummy resize event, to force us to realise our real size 29 29 # http://stackoverflow.com/q/16442573/8629 … … 31 31 size=(0, 0), w=0, h=0)) 32 32 33 def change_screen(self, new_screen , player):33 def change_screen(self, new_screen): 34 34 if self._current_screen is not None: 35 35 self._current_screen.teardown() 36 36 screen_cls = self._screens[new_screen] 37 self._current_screen = screen_cls(new_screen, player,self._world)37 self._current_screen = screen_cls(new_screen, self._world) 38 38 self._current_screen.setup() 39 39 … … 51 51 self._world.save() 52 52 self._surface.fill(pygame.color.Color(0, 0, 0)) 53 self.change_screen(ev.screen , ev.player)53 self.change_screen(ev.screen) 54 54 else: 55 55 self._current_screen.handle_event(ev) -
nagslang/events.py
r261 r276 38 38 @classmethod 39 39 def post(cls, new_screen, player=None): 40 super(ScreenChange, cls).post(screen=new_screen , player=player)40 super(ScreenChange, cls).post(screen=new_screen) 41 41 42 42 -
nagslang/game_object.py
r264 r276 27 27 def get_space(self): 28 28 return self._space 29 30 def set_space(self, new_space): 31 self._space = new_space 29 32 30 33 def set_game_object(self, game_object): -
nagslang/protagonist.py
r265 r276 85 85 def _get_image(self, name, *transforms): 86 86 return resources.get_image('creatures', name, transforms=transforms) 87 88 def change_space(self, new_space): 89 self.physicser.remove_from_space() 90 self.physicser.set_space(new_space) 91 self.physicser.add_to_space() 87 92 88 93 def _make_renderer(self): -
nagslang/screens/area.py
r272 r276 8 8 from nagslang.events import ScreenChange, DoorEvent, FireEvent 9 9 from nagslang.level import Level 10 from nagslang.protagonist import Protagonist11 10 from nagslang.screens.base import Screen 12 11 from nagslang.game_object import Bullet … … 74 73 self.add_walls() 75 74 self._add_collision_handlers() 76 if self.protagonist is not None: 77 # We do things this way to avoid extra pymunk 78 # juggling to move objects between spaces 79 old_protagonist = self.protagonist 80 self.add_protagonist() 81 self.protagonist.copy_state(old_protagonist) 82 else: 83 self.add_protagonist() 75 self.add_protagonist() 84 76 self.add_game_objects() 85 77 sound.play_music("POL-cyber-factory-short.ogg") … … 124 116 125 117 def add_protagonist(self): 126 self.protagonist = Protagonist(self.space, (350, 300)) 118 self.protagonist = self.world.protagonist 119 self.protagonist.change_space(self.space) 127 120 self._drawables.add(self.protagonist) 128 121 … … 143 136 self._disable_render = True 144 137 self.world.rooms += 1 145 ScreenChange.post(ev.destination , self.protagonist)138 ScreenChange.post(ev.destination) 146 139 return 147 140 # else we're teleporting within the screen, and just the -
nagslang/screens/base.py
r180 r276 7 7 class Screen(object): 8 8 9 def __init__(self, name, player,world):9 def __init__(self, name, world): 10 10 self.name = name 11 11 self.world = world 12 self.protagonist = player13 12 self.space = pymunk.Space() 14 13 -
nagslang/screens/menu.py
r252 r276 47 47 48 48 def play(self): 49 ScreenChange.post('level1' , None)49 ScreenChange.post('level1') 50 50 51 51 def restart(self): -
nagslang/world.py
r261 r276 6 6 import sys 7 7 8 import pymunk 9 8 10 from nagslang.yamlish import dump, load 11 from nagslang.protagonist import Protagonist 9 12 10 13 … … 19 22 self.kills = 0 20 23 self.rooms = 0 24 self.protagonist = Protagonist(pymunk.Space(), (350, 300)) 21 25 22 26 def _save_location(self): … … 37 41 value = getattr(self, attr) 38 42 if hasattr(value, '__name__'): 43 continue 44 # Hack until we save protagonist state 45 if hasattr(value, 'animate'): 39 46 continue 40 47 data[attr] = value
Note:
See TracChangeset
for help on using the changeset viewer.