diff options
Diffstat (limited to 'tools.py')
-rw-r--r-- | tools.py | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -594,6 +594,34 @@ class DestroyTool(Tool): def cancel(self): self.vertices = None +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) + + mod_pos = (point_pos[0], point_pos[1]) + self.game.world.add.joint( + track_circle, current_body, point_pos, mod_pos) + self.game.tracked_bodies.append(track_circle) + def getAllTools(): return [MagicPenTool, @@ -605,6 +633,7 @@ def getAllTools(): MotorTool, PinTool, JointTool, + TrackTool, DestroyTool] allTools = getAllTools() |