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: