# HG changeset patch # User Simon Cross # Date 1378043827 -7200 # Node ID e93eac7cf8c28fa60753149a84b1862d80b93fdf # Parent 50babb330261667a00dfb99ae27870baabb709bf Consider a spherical werewolf. diff -r 50babb330261 -r e93eac7cf8c2 nagslang/engine.py --- a/nagslang/engine.py Sun Sep 01 15:35:48 2013 +0200 +++ b/nagslang/engine.py Sun Sep 01 15:57:07 2013 +0200 @@ -39,4 +39,5 @@ self._current_screen.handle_event(ev) self._current_screen.render(self._surface) pygame.display.flip() - self._clock.tick(self._fps) + ms = self._clock.tick(self._fps) + self._current_screen.tick(ms / 1000.) diff -r 50babb330261 -r e93eac7cf8c2 nagslang/screens/area.py --- a/nagslang/screens/area.py Sun Sep 01 15:35:48 2013 +0200 +++ b/nagslang/screens/area.py Sun Sep 01 15:57:07 2013 +0200 @@ -26,15 +26,26 @@ self.space.add(*self.walls) def add_protagonist(self, world): - body = pymunk.Body(100, 1000) - body.position = (400, 300) - self.protagonist = pymunk.Circle(body, 30) - self.space.add(self.protagonist) + self.protagonist_body = pymunk.Body(100, 1000) + self.protagonist_body.position = (400, 300) + self.protagonist = pymunk.Circle(self.protagonist_body, 30) + self.space.add(self.protagonist_body, self.protagonist) + + def protagonist_move(self, dx, dy): + self.protagonist_body.apply_impulse((dx * 2000, dy * 2000)) def handle_event(self, ev): if ev.type == pygame.locals.KEYDOWN: if ev.key == pygame.locals.K_ESCAPE: ScreenChange.post('menu') + elif ev.key == pygame.locals.K_UP: + self.protagonist_move(0, 1) + elif ev.key == pygame.locals.K_DOWN: + self.protagonist_move(0, -1) + elif ev.key == pygame.locals.K_LEFT: + self.protagonist_move(-1, 0) + elif ev.key == pygame.locals.K_RIGHT: + self.protagonist_move(1, 0) def render(self, surface): surface.fill(pygame.color.Color(0, 0, 0))