Mercurial > nagslang
diff nagslang/screens/area.py @ 25:e93eac7cf8c2
Consider a spherical werewolf.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sun, 01 Sep 2013 15:57:07 +0200 |
parents | 1b048d2a8411 |
children | 3e4d8091268c |
line wrap: on
line diff
--- 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))