Mercurial > nagslang
changeset 204:687459429550
Display interior walls and start working towards drawing them
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Tue, 03 Sep 2013 23:14:48 +0200 |
parents | 917e721f170e |
children | 51f979ddddbb |
files | tools/area_editor.py |
diffstat | 1 files changed, 24 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/tools/area_editor.py Tue Sep 03 23:29:15 2013 +0200 +++ b/tools/area_editor.py Tue Sep 03 23:14:48 2013 +0200 @@ -28,7 +28,7 @@ from nagslang.options import parse_args from nagslang.constants import SCREEN -from nagslang.level import Level, POLY_COLORS +from nagslang.level import Level, POLY_COLORS, LINE_COLOR from nagslang.enemies import Enemy @@ -141,6 +141,9 @@ pygame.draw.line(self._surface, color, self.point_to_pygame(polygon[-1]), self.point_to_pygame(endpoint)) + for line in self.lines: + pointlist = [self.point_to_pygame(p) for p in line] + pygame.draw.lines(self._surface, LINE_COLOR, False, pointlist, 2) return self._surface.copy() @@ -157,6 +160,7 @@ self._mouse_drag = False self._draw_objects = False self._draw_enemies = False + self._draw_lines = False def _level_coordinates(self, pos): # Move positions to level values @@ -207,9 +211,15 @@ def change_poly(self, new_poly): self.cur_poly = new_poly + self._draw_lines = False if self.cur_poly is not None: self.filled_mode = False + def line_mode(self): + self.cur_poly = None + self._draw_lines = True + self.filled_mode = False + def key_down(self, ev): if ev.key == pgl.K_LEFT: self._move_view((-10, 0)) @@ -235,6 +245,7 @@ if closed: self.cur_poly = None self.filled_mode = True + self._draw_lines = False else: alert('Not all polygons closed, so not filling') @@ -255,8 +266,12 @@ def mouse_down(self, ev): if ev.button == 1: - print "Click: %r" % ( - self.level.point_to_pymunk(self._level_coordinates(ev.pos)),) + if self._draw_lines: + pass + else: + print "Click: %r" % ( + self.level.point_to_pymunk( + self._level_coordinates(ev.pos)),) if ev.button == 4: # Scroll up self._move_view((0, -10)) elif ev.button == 5: # Scroll down @@ -335,6 +350,12 @@ self.add(end_poly_but) y += MENU_BUTTON_HEIGHT + MENU_PAD + draw_line = Button("Draw interior wall", self.level_widget.line_mode) + draw_line.rect = button_rect.copy() + draw_line.rect.move_ip(MENU_LEFT, y) + self.add(draw_line) + y += MENU_BUTTON_HEIGHT + MENU_PAD + fill_but = Button('Fill exterior', action=self.level_widget.set_filled) fill_but.rect = button_rect.copy() fill_but.rect.move_ip(MENU_LEFT, y)