diff options
author | Asaf Paris Mandoki <asaf@asaf-desktop.(none)> | 2009-06-14 02:59:52 (GMT) |
---|---|---|
committer | Asaf Paris Mandoki <asaf@asaf-desktop.(none)> | 2009-06-14 02:59:52 (GMT) |
commit | b8d17f2e400c39d1aa4d191f48d693c01f6a813d (patch) | |
tree | 6f78acb4c1a8047a2fd9616baaf57b89d5d9cdad /tools.py | |
parent | 2202de8257083535d796c2e1e66e099de5ad5110 (diff) |
Added "Motor" and "Pin" tools
Diffstat (limited to 'tools.py')
-rw-r--r-- | tools.py | 52 |
1 files changed, 50 insertions, 2 deletions
@@ -328,8 +328,56 @@ class JointTool(Tool): pygame.draw.line(self.game.screen,(100,180,255),self.jb1pos,pygame.mouse.get_pos(),3) def cancel(self): - self.jb1 = self.jb2 = self.jb1pos = self.jb2pos = None - + self.jb1 = self.jb2 = self.jb1pos = self.jb2pos = None + +# The pin tool +class PinTool(Tool): + name = "pin" + icon = "pin" + toolTip = "Pin" + + def __init__(self,gameInstance): + self.game = gameInstance + self.name = "Pin" + self.jb1 = self.jb1pos = None + def handleEvents(self,event): + #look for default events, and if none are handled then try the custom events + if not super(PinTool,self).handleEvents(event): + if event.type == MOUSEBUTTONDOWN: + self.jb1pos = event.pos + self.jb1 = self.game.world.get_bodies_at_pos(event.pos) + if self.jb1: + self.game.world.add.fixedJoint(self.jb1[0],self.jb1pos) + self.jb1 = self.jb1pos = None + + def cancel(self): + self.jb1 = self.jb1pos = None + +# The motor tool +class MotorTool(Tool): + name = "motor" + icon = "motor" + toolTip = "Motor" + + def __init__(self,gameInstance): + self.game = gameInstance + self.name = "Motor" + self.jb1 = self.jb1pos = None + def handleEvents(self,event): + #look for default events, and if none are handled then try the custom events + if not super(MotorTool,self).handleEvents(event): + if event.type == MOUSEBUTTONDOWN: + if event.button >= 1: + # grab the first body + self.jb1pos = event.pos + self.jb1 = self.game.world.get_bodies_at_pos(event.pos) + if self.jb1: + self.game.world.add.motor(self.jb1[0],self.jb1pos) + self.jb1 = self.jb1pos = None + def cancel(self): + self.jb1 = self.jb1pos = None + + # The destroy tool class DestroyTool(Tool): name = "destroy" |