Mercurial > nagslang
comparison tools/area_editor.py @ 436:7079c3214d72
Scale lines when we zoom out
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Sat, 07 Sep 2013 14:19:31 +0200 |
parents | 27d74e58151d |
children | 4c60df80b91b |
comparison
equal
deleted
inserted
replaced
435:27d74e58151d | 436:7079c3214d72 |
---|---|
113 startpoint = self.point_to_pymunk(start_pos) | 113 startpoint = self.point_to_pymunk(start_pos) |
114 endpoint = self.point_to_pymunk(end_pos) | 114 endpoint = self.point_to_pymunk(end_pos) |
115 self.lines.append([startpoint, endpoint]) | 115 self.lines.append([startpoint, endpoint]) |
116 | 116 |
117 def draw(self, mouse_pos, mouse_poly, filled, draw_cand_line, start_pos, | 117 def draw(self, mouse_pos, mouse_poly, filled, draw_cand_line, start_pos, |
118 move_point_mode, move_point): | 118 move_point_mode, move_point, zoom_factor): |
119 self._draw_background(True) | 119 self._draw_background(True) |
120 # Draw polygons as needed for the editor | 120 # Draw polygons as needed for the editor |
121 line_width = int(2 * zoom_factor) | |
121 if filled: | 122 if filled: |
122 self._draw_exterior(True) | 123 self._draw_exterior(True) |
123 for index, polygon in self.polygons.items(): | 124 for index, polygon in self.polygons.items(): |
124 color = POLY_COLORS.get(index, pygame.color.THECOLORS['black']) | 125 color = POLY_COLORS.get(index, pygame.color.THECOLORS['black']) |
125 if move_point_mode and index == self._move_poly: | 126 if move_point_mode and index == self._move_poly: |
126 pointlist = [p for p in polygon] | 127 pointlist = [p for p in polygon] |
127 pointlist = [self.point_to_pygame(p) if p != move_point else | 128 pointlist = [self.point_to_pygame(p) if p != move_point else |
128 mouse_pos for p in pointlist] | 129 mouse_pos for p in pointlist] |
129 pygame.draw.lines(self._surface, color, False, pointlist, 2) | 130 pygame.draw.lines(self._surface, color, False, pointlist, |
131 line_width) | |
130 break | 132 break |
131 if len(polygon) > 1: | 133 if len(polygon) > 1: |
132 pointlist = [self.point_to_pygame(p) for p in polygon] | 134 pointlist = [self.point_to_pygame(p) for p in polygon] |
133 pygame.draw.lines(self._surface, color, False, pointlist, 2) | 135 pygame.draw.lines(self._surface, color, False, pointlist, |
136 line_width) | |
134 if index == mouse_poly and mouse_pos: | 137 if index == mouse_poly and mouse_pos: |
135 endpoint = self.point_to_pymunk(mouse_pos) | 138 endpoint = self.point_to_pymunk(mouse_pos) |
136 pygame.draw.line(self._surface, color, | 139 pygame.draw.line(self._surface, color, |
137 self.point_to_pygame(polygon[-1]), | 140 self.point_to_pygame(polygon[-1]), |
138 self.point_to_pygame(endpoint)) | 141 self.point_to_pygame(endpoint)) |
142 if move_point_mode and not self._move_poly and not line_found: | 145 if move_point_mode and not self._move_poly and not line_found: |
143 if move_point in line: | 146 if move_point in line: |
144 line_found = True | 147 line_found = True |
145 pointlist.remove(self.point_to_pygame(move_point)) | 148 pointlist.remove(self.point_to_pygame(move_point)) |
146 pointlist.append(mouse_pos) | 149 pointlist.append(mouse_pos) |
147 pygame.draw.lines(self._surface, LINE_COLOR, False, pointlist, 2) | 150 pygame.draw.lines(self._surface, LINE_COLOR, False, pointlist, |
151 line_width) | |
148 if draw_cand_line and start_pos and mouse_pos: | 152 if draw_cand_line and start_pos and mouse_pos: |
149 endpoint = self.snap_to_grid(mouse_pos) | 153 endpoint = self.snap_to_grid(mouse_pos) |
150 pointlist = [start_pos, | 154 pointlist = [start_pos, |
151 self.point_to_pygame(endpoint)] | 155 self.point_to_pygame(endpoint)] |
152 pygame.draw.lines(self._surface, LINE_COLOR, False, pointlist, 1) | 156 pygame.draw.lines(self._surface, LINE_COLOR, False, pointlist, 1) |
469 mouse_pos = self.snap_to_grid(mouse_pos) | 473 mouse_pos = self.snap_to_grid(mouse_pos) |
470 else: | 474 else: |
471 mouse_pos = None | 475 mouse_pos = None |
472 level_surface = level.draw(mouse_pos, self.cur_poly, self.filled_mode, | 476 level_surface = level.draw(mouse_pos, self.cur_poly, self.filled_mode, |
473 self._draw_lines, self._start_pos, | 477 self._draw_lines, self._start_pos, |
474 self._move_point_mode, self._move_point) | 478 self._move_point_mode, self._move_point, |
479 self._zoom_factor) | |
475 if self._draw_objects: | 480 if self._draw_objects: |
476 for thing in self.level.drawables: | 481 for thing in self.level.drawables: |
477 if not isinstance(thing, ne.Enemy): | 482 if not isinstance(thing, ne.Enemy): |
478 thing.render(level_surface) | 483 thing.render(level_surface) |
479 if self._draw_enemies: | 484 if self._draw_enemies: |