diff options
author | Sai Vineet <saivineet89@gmail.com> | 2013-12-11 19:36:41 (GMT) |
---|---|---|
committer | Sai Vineet <saivineet89@gmail.com> | 2013-12-11 19:36:41 (GMT) |
commit | d577decc9f49bac76c410a12b62e26ec582c5c81 (patch) | |
tree | e2f7d81ee6967e9563bfff4008a0467775691fda /tools.py | |
parent | 0d17137aaff76290b0f497bf10885620454f0a5a (diff) |
Also took out the Elements package from the .egg and brought it out so that it
can be edited. The Export to csv functionality has also been changed to reflect
pygame coords only. Previously the coords were Box2d meters.
Diffstat (limited to 'tools.py')
-rw-r--r-- | tools.py | 36 |
1 files changed, 30 insertions, 6 deletions
@@ -57,6 +57,9 @@ class Tool(object): # Add ground, because we destroyed it before self.game.world.add.ground() + + # Also clear the points recorded in pens. + self.game.full_pos_list = [[] for _ in self.game.full_pos_list] elif event.action == "focus_in": self.game.in_focus = True elif event.action == "focus_out": @@ -78,8 +81,17 @@ class Tool(object): pass def draw(self): - # Default drawing method is don't draw anything - pass + # Default drawing method is draw the pen points. + full_pos_list = self.game.full_pos_list + surface = self.game.world.renderer.get_surface() + for i, pos_list in enumerate(full_pos_list): + color = self.game.tracked_bodies[i] + for i in range(0, len(pos_list), 2): + posx = int(pos_list[i]) + posy = int(pos_list[i+1]) + pygame.draw.circle(surface, color, + (posx, posy), + 2) def cancel(self): # Default cancel doesn't do anything @@ -111,6 +123,7 @@ class CircleTool(Tool): self.pt1 = None def draw(self): + Tool.draw(self) # Draw a circle from pt1 to mouse if self.pt1 != None: delta = distance(self.pt1, @@ -162,6 +175,7 @@ class BoxTool(Tool): self.pt1 = None def draw(self): + Tool.draw(self) # Draw a box from pt1 to mouse if self.pt1 != None: mouse_x_y = tuple_to_int(pygame.mouse.get_pos()) @@ -230,6 +244,7 @@ class TriangleTool(Tool): self.vertices = None def draw(self): + Tool.draw(self) # Draw a triangle from pt1 to mouse if self.pt1 != None: mouse_x_y = tuple_to_int(pygame.mouse.get_pos()) @@ -307,6 +322,7 @@ class PolygonTool(Tool): self.safe = True def draw(self): + Tool.draw(self) # Draw the poly being created if self.vertices: for i in range(len(self.vertices) - 1): @@ -362,6 +378,7 @@ class MagicPenTool(Tool): self.safe = True def draw(self): + Tool.draw(self) # Draw the poly being created if self.vertices: if len(self.vertices) > 1: @@ -467,6 +484,7 @@ class JointTool(Tool): self.jb1 = self.jb2 = self.jb1pos = self.jb2pos = None def draw(self): + Tool.draw(self) if self.jb1: pygame.draw.line(self.game.screen, (100, 180, 255), self.jb1pos, tuple_to_int(pygame.mouse.get_pos()), 3) @@ -585,6 +603,7 @@ class DestroyTool(Tool): self.cancel() def draw(self): + Tool.draw(self) # Draw the trail if self.vertices: if len(self.vertices) > 1: @@ -611,18 +630,23 @@ class TrackTool(Tool): if pygame.mouse.get_pressed()[0]: current_body = self.game.world.get_bodies_at_pos( - tuple_to_int(event.pos))[0] + tuple_to_int(event.pos)) + if current_body: + current_body = current_body[0] + color = current_body.userData['color'] + 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) + track_circle, current_body, point_pos, point_pos, False) + self.game.tracked_bodies.append(color) + # Note: tracked_bodies list stores colors of bodies for color + # pen rendering. def getAllTools(): |