Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tools.py
diff options
context:
space:
mode:
authorAsaf 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)
commitb8d17f2e400c39d1aa4d191f48d693c01f6a813d (patch)
tree6f78acb4c1a8047a2fd9616baaf57b89d5d9cdad /tools.py
parent2202de8257083535d796c2e1e66e099de5ad5110 (diff)
Added "Motor" and "Pin" tools
Diffstat (limited to 'tools.py')
-rw-r--r--tools.py52
1 files changed, 50 insertions, 2 deletions
diff --git a/tools.py b/tools.py
index 41bc52f..9754652 100644
--- a/tools.py
+++ b/tools.py
@@ -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"