Changeset 109:817d4a62135c


Ignore:
Timestamp:
Sep 2, 2013, 12:09:39 PM (7 years ago)
Author:
Neil Muller <drnlmuller@…>
Branch:
default
rebase_source:
5eadab6939c45d5b25716f4665dcc74dd21f4d26
Message:

Partially albowify the level editor

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/area_editor.py

    r108 r109  
    2020from albow.root import RootWidget
    2121from albow.widget import Widget
    22 from albow.controls import Button, Image
    23 from albow.resource import get_font
     22from albow.controls import Button
    2423
    2524sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
    2625
    27 from nagslang.constants import SCREEN, FPS
     26from nagslang.constants import SCREEN
    2827from nagslang.level import Level, POLY_COLORS
    2928
     
    105104        surface.blit(self._surface, (0, 0), surface_area)
    106105
     106
    107107class LevelWidget(Widget):
    108108
    109109    def __init__(self, level):
    110110        super(LevelWidget, self).__init__(pygame.rect.Rect(0, 0,
    111             SCREEN[0], SCREEN[1]))
     111                                          SCREEN[0], SCREEN[1]))
    112112        self.level = level
    113113        self.pos = (0, 0)
     
    134134        self.pos = tuple(new_pos)
    135135
    136 
    137136    def draw(self, surface):
    138137        if (self.cur_poly is not None and self.cur_poly in self.level.polygons
     
    142141        else:
    143142            mouse_pos = None
    144         level.draw(surface, self.pos, self.mouse_pos, self.cur_poly,
    145                 self.filled_mode)
     143        level.draw(surface, self.pos, mouse_pos, self.cur_poly,
     144                   self.filled_mode)
    146145
    147146    def key_down(self, ev):
     
    185184                print 'Not all polygons closed, so not filling'
    186185
     186    def mouse_move(self, ev):
     187        old_pos = self.mouse_pos
     188        self.mouse_pos = ev.pos
     189        if self.cur_poly and old_pos != self.mouse_pos:
     190            self.invalidate()
     191
     192    def mouse_down(self, ev):
     193        if self.cur_poly:
     194            # Add a point
     195            self.level.add_point(self.cur_poly,
     196                                 self._level_coordinates(ev.pos))
    187197
    188198
     
    200210        self.add(quit_but)
    201211
    202         #        elif ev.type == pgl.MOUSEBUTTONDOWN and self.cur_poly:
    203         #            # Add a point
    204         #            self.level.add_point(self.cur_poly,
    205         #                                 self._level_coordinates(ev.pos))
    206         #        elif ev.type == pgl.MOUSEMOTION:
    207         #            self.mouse_pos = ev.pos
    208         #    self.draw()
    209         #    pygame.display.flip()
    210         #    clock.tick(FPS)
    211 
    212212    def key_down(self, ev):
    213213        if ev.key == pgl.K_ESCAPE:
     
    215215        else:
    216216            self.level_widget.key_down(ev)
     217
     218    def mouse_move(self, ev):
     219        self.level_widget.mouse_move(ev)
    217220
    218221
     
    229232    pygame.font.init()
    230233    pygame.display.set_mode((SCREEN[0] + MENU_WIDTH, SCREEN[1]),
    231             pgl.SWSURFACE)
     234                            pgl.SWSURFACE)
    232235    pygame.display.set_caption('Nagslang Area Editor')
    233236    pygame.key.set_repeat(200, 100)
Note: See TracChangeset for help on using the changeset viewer.