changeset 356:582a96e5fdac

Tweaks to the claw attack.
author David Sharpe
date Fri, 06 Sep 2013 18:41:29 +0200
parents 9589e1db4433
children d2c7e17299a7
files nagslang/game_object.py nagslang/protagonist.py
diffstat 2 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/nagslang/game_object.py	Fri Sep 06 17:32:25 2013 +0200
+++ b/nagslang/game_object.py	Fri Sep 06 18:41:29 2013 +0200
@@ -460,8 +460,10 @@
 
 
 class ClawAttack(GameObject):
-    def __init__(self, space, position, vector, damage):
-        body = make_body(1, pymunk.inf, position)
+    def __init__(self, space, pos, vector, damage):
+        body = make_body(1, pymunk.inf,
+                         (pos[0] + (vector.length * math.cos(vector.angle)),
+                         pos[1] + (vector.length * math.sin(vector.angle))))
         body.angle = vector.angle
         self.shape = pymunk.Circle(body, 30)
         self.shape.sensor = True
@@ -473,7 +475,6 @@
                 'objects', 'werewolf_SW_claw_attack.png',
                 transforms=(FLIP_H,))),
         )
-        self.physicser.apply_impulse(vector)
 
     def update(self, dt):
         super(ClawAttack, self).update(dt)
--- a/nagslang/protagonist.py	Fri Sep 06 17:32:25 2013 +0200
+++ b/nagslang/protagonist.py	Fri Sep 06 18:41:29 2013 +0200
@@ -1,3 +1,5 @@
+import math
+
 import pymunk
 import pymunk.pygame_util
 
@@ -297,7 +299,10 @@
             self.physicser.position, vec, BULLET_DAMAGE, COLLISION_TYPE_PLAYER)
 
     def claw(self):
-        vec = vec_from_angle(self.angle, 300)
+        claw_range = (math.sqrt(math.pow(self.physicser.get_velocity()[0], 2) +
+                                math.pow(self.physicser.get_velocity()[1], 2))
+                      / 20) + 30
+        vec = vec_from_angle(self.angle, claw_range)
         ClawEvent.post(self.physicser.position, vec, CLAW_DAMAGE)
 
     def in_wolf_form(self):