Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tools.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools.py')
-rw-r--r--tools.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tools.py b/tools.py
index 62aba05..d1af693 100644
--- a/tools.py
+++ b/tools.py
@@ -595,6 +595,36 @@ class DestroyTool(Tool):
self.vertices = None
+# Track tool
+class TrackTool(Tool):
+ name = 'Track'
+ icon = 'track'
+ toolTip = _('Track Object')
+ toolAccelerator = _("<ctrl>r")
+
+ def __init__(self, game):
+ Tool.__init__(self, game)
+ self.radius = 1
+
+ def handleToolEvent(self, event):
+ Tool.handleToolEvent(self, event)
+
+ if pygame.mouse.get_pressed()[0]:
+ current_body = self.game.world.get_bodies_at_pos(
+ tuple_to_int(event.pos))[0]
+ if current_body:
+ point_pos = tuple_to_int(event.pos)
+ track_circle = self.game.world.add.ball(point_pos, self.radius,
+ dynamic=True, density=0.001,
+ restitution=0.16, friction=0.1)
+ track_circle.userData['track_index'] = len(
+ self.game.tracked_bodies)
+
+ self.game.world.add.joint(
+ track_circle, current_body, point_pos, point_pos)
+ self.game.tracked_bodies.append(track_circle)
+
+
def getAllTools():
return [MagicPenTool,
CircleTool,
@@ -605,6 +635,7 @@ def getAllTools():
MotorTool,
PinTool,
JointTool,
+ TrackTool,
DestroyTool]
allTools = getAllTools()