diff nagslang/screens/area.py @ 21:1b048d2a8411

Fake area.
author Simon Cross <hodgestar@gmail.com>
date Sun, 01 Sep 2013 15:34:57 +0200
parents 347667c941de
children e93eac7cf8c2
line wrap: on
line diff
--- a/nagslang/screens/area.py	Sun Sep 01 15:18:11 2013 +0200
+++ b/nagslang/screens/area.py	Sun Sep 01 15:34:57 2013 +0200
@@ -1,12 +1,36 @@
 """Display a game area."""
 
 import pygame
+import pymunk
+import pymunk.pygame_util
 
 from nagslang.screens.base import Screen
 from nagslang.events import ScreenChange
 
 
 class AreaScreen(Screen):
+
+    def setup(self, world):
+        self.add_walls(world)
+        self.add_protagonist(world)
+
+    def add_walls(self, world):
+        self.walls = []
+        body = pymunk.Body()
+        body.position = (400, 300)
+        corners = [(-200, -150), (-200, 150), (200, 150), (200, -150)]
+        corner = corners[-1]
+        for next_corner in corners:
+            self.walls.append(pymunk.Segment(body, corner, next_corner, 5))
+            corner = next_corner
+        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)
+
     def handle_event(self, ev):
         if ev.type == pygame.locals.KEYDOWN:
             if ev.key == pygame.locals.K_ESCAPE:
@@ -14,3 +38,5 @@
 
     def render(self, surface):
         surface.fill(pygame.color.Color(0, 0, 0))
+        pymunk.pygame_util.draw(surface, *self.walls)
+        pymunk.pygame_util.draw(surface, self.protagonist)