diff options
author | Gary Martin <gary@garycmartin.com> | 2010-10-11 17:49:59 (GMT) |
---|---|---|
committer | Gary Martin <gary@garycmartin.com> | 2010-10-11 17:49:59 (GMT) |
commit | b95d7ff7fdc07ce3a0cc22d0fde115a57c651478 (patch) | |
tree | 7549ab2efa47b868e6ee71a552b70a8b67054bb7 /tools.py | |
parent | d6082485b1ed3461d051bf34a5ea291dd6f896bc (diff) |
Code tidy of PolygonTool class.
Diffstat (limited to 'tools.py')
-rw-r--r-- | tools.py | 67 |
1 files changed, 34 insertions, 33 deletions
@@ -256,40 +256,41 @@ class PolygonTool(Tool): self.safe = False def handleToolEvent(self, event): - if event.type == MOUSEBUTTONDOWN and event.button == 1 and self.vertices is None: - self.vertices = [event.pos] - self.safe = False - if event.type == MOUSEBUTTONUP and event.button == 1 and self.vertices is not None and len(self.vertices) == 1 and event.pos[0] == self.vertices[0][0] and event.pos[1] == self.vertices[0][1]: - if self.previous_vertices is not None: - last_x_y = self.previous_vertices[-1] - delta_x = last_x_y[0] - event.pos[0] - delta_y = last_x_y[1] - event.pos[1] - self.vertices = [[i[0] - delta_x, i[1] - delta_y] - for i in self.previous_vertices] - self.safe = True - self.game.world.add.complexPoly(self.vertices, dynamic=True, - density=1.0, - restitution=0.16, - friction=0.5) - self.vertices = None - elif (event.type == MOUSEBUTTONUP or event.type == MOUSEBUTTONDOWN) and event.button == 1: - if self.vertices is None or (event.pos[0] == self.vertices[-1][0] and event.pos[1] == self.vertices[-1][1]): - # Skip if coordinate is same as last one - return - if distance(event.pos, self.vertices[0]) < 15 and self.safe: - self.vertices.append(self.vertices[0]) # Connect the polygon - self.game.world.add.complexPoly(self.vertices, dynamic=True, - density=1.0, - restitution=0.16, - friction=0.5) - self.previous_vertices = self.vertices[:] - self.vertices = None - elif distance(event.pos, self.vertices[0]) < 15: - self.vertices = None - else: - self.vertices.append(event.pos) - if distance(event.pos, self.vertices[0]) >= 55 and self.vertices: + if hasattr(event, 'button') and event.button == 1: + if event.type == MOUSEBUTTONDOWN and self.vertices is None: + self.vertices = [event.pos] + self.safe = False + if event.type == MOUSEBUTTONUP and self.vertices is not None and len(self.vertices) == 1 and event.pos[0] == self.vertices[0][0] and event.pos[1] == self.vertices[0][1]: + if self.previous_vertices is not None: + last_x_y = self.previous_vertices[-1] + delta_x = last_x_y[0] - event.pos[0] + delta_y = last_x_y[1] - event.pos[1] + self.vertices = [[i[0] - delta_x, i[1] - delta_y] + for i in self.previous_vertices] self.safe = True + self.game.world.add.complexPoly(self.vertices, dynamic=True, + density=1.0, + restitution=0.16, + friction=0.5) + self.vertices = None + elif (event.type == MOUSEBUTTONUP or event.type == MOUSEBUTTONDOWN): + if self.vertices is None or (event.pos[0] == self.vertices[-1][0] and event.pos[1] == self.vertices[-1][1]): + # Skip if coordinate is same as last one + return + if distance(event.pos, self.vertices[0]) < 15 and self.safe: + self.vertices.append(self.vertices[0]) # Connect polygon + self.game.world.add.complexPoly(self.vertices, dynamic=True, + density=1.0, + restitution=0.16, + friction=0.5) + self.previous_vertices = self.vertices[:] + self.vertices = None + elif distance(event.pos, self.vertices[0]) < 15: + self.vertices = None + else: + self.vertices.append(event.pos) + if distance(event.pos, self.vertices[0]) >= 55: + self.safe = True def draw(self): # Draw the poly being created |