Mercurial > nagslang
comparison tools/area_editor.py @ 463:11eaf0d3e612
Fix boogs.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sat, 07 Sep 2013 15:59:28 +0200 |
parents | c2909e9411ae |
children | 1e24145a2860 |
comparison
equal
deleted
inserted
replaced
462:c2909e9411ae | 463:11eaf0d3e612 |
---|---|
141 mouse_pos for p in pointlist] | 141 mouse_pos for p in pointlist] |
142 pygame.draw.lines(self._surface, color, False, pointlist, | 142 pygame.draw.lines(self._surface, color, False, pointlist, |
143 line_width) | 143 line_width) |
144 break | 144 break |
145 if move_poly_mode and index == self._move_poly and move_point: | 145 if move_poly_mode and index == self._move_poly and move_point: |
146 pointlist = [p for p in self.translate_poly( | 146 new_point = self.point_to_pymunk(mouse_pos) |
147 polygon, move_point, mouse_pos)] | 147 pointlist = [self.point_to_pygame(p) |
148 for p in self.translate_poly( | |
149 polygon, move_point, new_point)] | |
148 pygame.draw.lines(self._surface, color, False, pointlist, | 150 pygame.draw.lines(self._surface, color, False, pointlist, |
149 line_width) | 151 line_width) |
150 break | 152 #break |
151 if len(polygon) > 1: | 153 if len(polygon) > 1: |
152 pointlist = [self.point_to_pygame(p) for p in polygon] | 154 pointlist = [self.point_to_pygame(p) for p in polygon] |
153 pygame.draw.lines(self._surface, color, False, pointlist, | 155 pygame.draw.lines(self._surface, color, False, pointlist, |
154 line_width) | 156 line_width) |
155 if index == mouse_poly and mouse_pos and len(polygon) > 0: | 157 if index == mouse_poly and mouse_pos and len(polygon) > 0: |
225 return obj | 227 return obj |
226 return None | 228 return None |
227 | 229 |
228 def find_vertex(self, mouse_pos): | 230 def find_vertex(self, mouse_pos): |
229 # search for vertexes closest to where we've killed | 231 # search for vertexes closest to where we've killed |
230 mindist = 400 | 232 mindist = 1000 |
231 move_point = None | 233 move_point = None |
232 search_point = self.point_to_pymunk(mouse_pos) | 234 search_point = self.point_to_pymunk(mouse_pos) |
233 for index, polygon in self.polygons.items(): | 235 for index, polygon in self.polygons.items(): |
234 for point in polygon: | 236 for point in polygon: |
235 dist = distance(point, search_point) | 237 dist = distance(point, search_point) |
245 mindist = dist | 247 mindist = dist |
246 move_point = point | 248 move_point = point |
247 self._move_poly = None | 249 self._move_poly = None |
248 return move_point | 250 return move_point |
249 | 251 |
250 def translate_poly(self, poly, move_point, mouse_point): | 252 def translate_poly(self, poly, move_point, new_point): |
251 print "Translate!" | 253 dx = new_point[0] - move_point[0] |
252 dx = mouse_point[0] - move_point[0] | 254 dy = new_point[1] - move_point[1] |
253 dy = mouse_point[1] - move_point[1] | |
254 new_poly = [(p[0] + dx, p[1] + dy) for p in poly] | 255 new_poly = [(p[0] + dx, p[1] + dy) for p in poly] |
255 return new_poly | 256 return new_poly |
256 | 257 |
257 def replace_poly(self, old_point, new_point): | 258 def replace_poly(self, move_point, new_point): |
258 print "Replace!", self._move_poly | |
259 new_point = self.point_to_pymunk(new_point) | 259 new_point = self.point_to_pymunk(new_point) |
260 if self._move_poly: | 260 if self._move_poly: |
261 self.polygons[self._move_poly] = self.translate_poly( | 261 self.polygons[self._move_poly] = self.translate_poly( |
262 self.polygons[self._move_poly], old_point, new_point) | 262 self.polygons[self._move_poly], move_point, new_point) |
263 | 263 |
264 def replace_vertex(self, old_point, new_point): | 264 def replace_vertex(self, old_point, new_point): |
265 new_point = self.point_to_pymunk(new_point) | 265 new_point = self.point_to_pymunk(new_point) |
266 if self._move_poly: | 266 if self._move_poly: |
267 new_polygon = [p if p != old_point else new_point for p in | 267 new_polygon = [p if p != old_point else new_point for p in |
618 self.invalidate() | 618 self.invalidate() |
619 | 619 |
620 def mouse_down(self, ev): | 620 def mouse_down(self, ev): |
621 corrected_pos = self._level_coordinates(ev.pos) | 621 corrected_pos = self._level_coordinates(ev.pos) |
622 snapped_pos = self.snap_to_grid(corrected_pos) | 622 snapped_pos = self.snap_to_grid(corrected_pos) |
623 print self._move_poly_mode, ev.button, self._move_point | |
624 if self.sel_mode and ev.button == 1: | 623 if self.sel_mode and ev.button == 1: |
625 obj = self.level.find_obj_at_pos(corrected_pos) | 624 obj = self.level.find_obj_at_pos(corrected_pos) |
626 if obj is not None: | 625 if obj is not None: |
627 self._edit_selected(obj) | 626 self._edit_selected(obj) |
628 elif self._move_poly_mode and ev.button == 1: | 627 elif self._move_poly_mode and ev.button == 1: |
632 self._move_point = None | 631 self._move_point = None |
633 self.invalidate() | 632 self.invalidate() |
634 else: | 633 else: |
635 # find the current point | 634 # find the current point |
636 self._move_point = self.level.find_vertex(snapped_pos) | 635 self._move_point = self.level.find_vertex(snapped_pos) |
637 print "NEW MOV:", self._move_point | |
638 elif self._move_point_mode and ev.button == 1: | 636 elif self._move_point_mode and ev.button == 1: |
639 if self._move_point: | 637 if self._move_point: |
640 # Place the current point | 638 # Place the current point |
641 self.level.replace_vertex(self._move_point, snapped_pos) | 639 self.level.replace_vertex(self._move_point, snapped_pos) |
642 self._move_point = None | 640 self._move_point = None |