diff nagslang/screens/area.py @ 65:a99ac95a2940

Move protagonist object to the right place.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 01 Sep 2013 19:31:39 +0200
parents 972142c543ef
children a1b4d09e6f23
line wrap: on
line diff
--- a/nagslang/screens/area.py	Sun Sep 01 19:18:45 2013 +0200
+++ b/nagslang/screens/area.py	Sun Sep 01 19:31:39 2013 +0200
@@ -4,13 +4,10 @@
 import pymunk
 import pymunk.pygame_util
 
-from nagslang.game_object import (
-    GameObject, SingleShapePhysicser, FacingImageRenderer)
-from nagslang.screens.base import Screen
+from nagslang.events import ScreenChange
 from nagslang.level import Level
-from nagslang.events import ScreenChange
-from nagslang.resources import resources
-from nagslang.mutators import FLIP_H
+from nagslang.protagonist import Protagonist
+from nagslang.screens.base import Screen
 
 
 class ControlKeys(object):
@@ -30,61 +27,6 @@
             self.key_up(ev.key)
 
 
-class Protagonist(GameObject):
-    def __init__(self, position):
-        self.body = pymunk.Body(10, 10000)
-        self.body.position = position
-        self.body.velocity_func = self.velocity_func
-
-        self.shape = pymunk.Circle(self.body, 30)
-        self.shape.elasticity = 1.0
-        self.shape.friction = 10.0
-
-        super(Protagonist, self).__init__(
-            FacingImageRenderer(
-                resources.get_image('creatures', 'werewolf_1.png'),
-                resources.get_image(
-                    'creatures', 'werewolf_1.png', transforms=(FLIP_H,))),
-            SingleShapePhysicser(self.shape))
-
-        self.go_human()
-
-    def velocity_func(self, body, gravity, damping, dt):
-        return pymunk.Body.update_velocity(body, gravity, self.damping, dt)
-
-    def go_werewolf(self):
-        self.werewolf = True
-        self.body.mass = 100
-        self.body.moment = 10000
-        self.body.velocity_limit = 1000
-        self.shape.color = pygame.color.THECOLORS['red']
-        self.impulse_factor = 4000
-        self.damping = 0.9
-
-    def go_human(self):
-        self.werewolf = False
-        self.body.mass = 10
-        self.body.moment = 1000
-        self.body.velocity_limit = 1000
-        self.shape.color = pygame.color.THECOLORS['blue']
-        self.impulse_factor = 500
-        self.damping = 0.8
-
-    def set_direction(self, dx, dy):
-        if (dx, dy) == (0, 0):
-            return
-        vec = pymunk.Vec2d((dx, dy))
-        self.body.angle = vec.angle
-        self.body.apply_impulse(
-            (dx * self.impulse_factor, dy * self.impulse_factor))
-
-    def toggle_form(self):
-        if self.werewolf:
-            self.go_human()
-        else:
-            self.go_werewolf()
-
-
 class AreaScreen(Screen):
 
     def setup(self):