diff options
Diffstat (limited to 'tools.py')
-rw-r--r-- | tools.py | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -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() |