Changeset 115:6415db718b36


Ignore:
Timestamp:
Sep 2, 2013, 1:04:42 PM (7 years ago)
Author:
Neil Muller <drnlmuller@…>
Branch:
default
Message:

More albow

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/area_editor.py

    r109 r115  
    2929
    3030# layout constants
    31 MENU_WIDTH = 200
    3231MENU_BUTTON_HEIGHT = 35
     32MENU_PAD = 6
     33MENU_HALF_PAD = MENU_PAD // 2
     34MENU_LEFT = SCREEN[0] + MENU_HALF_PAD
     35MENU_WIDTH = 200 - MENU_PAD
    3336
    3437
     
    144147                   self.filled_mode)
    145148
     149    def change_poly(self, new_poly):
     150        self.cur_poly = new_poly
     151        if self.cur_poly is not None:
     152            self.filled_mode = False
     153
    146154    def key_down(self, ev):
    147155        if ev.key == pgl.K_LEFT:
     
    153161        elif ev.key == pgl.K_DOWN:
    154162            self._move_view((0, 10))
    155         elif ev.key == pgl.K_1:
    156             self.cur_poly = 1
    157             self.filled_mode = False
    158         elif ev.key == pgl.K_2:
    159             self.cur_poly = 2
    160             self.filled_mode = False
    161         elif ev.key == pgl.K_3:
    162             self.cur_poly = 3
    163             self.filled_mode = False
    164         elif ev.key == pgl.K_4:
    165             self.cur_poly = 4
    166             self.filled_mode = False
    167         elif ev.key == pgl.K_5:
    168             self.cur_poly = 5
    169             self.filled_mode = False
    170         elif ev.key == pgl.K_6:
    171             self.cur_poly = 6
    172             self.filled_mode = False
     163        elif ev.key in (pgl.K_1, pgl.K_2, pgl.K_3, pgl.K_4, pgl.K_5, pgl.K_6):
     164            self.change_poly(ev.key - pgl.K_0)
    173165        elif ev.key == pgl.K_0:
    174             self.cur_poly = None
     166            self.change_poly(None)
    175167        elif ev.key == pgl.K_d and self.cur_poly:
    176168            self.level.delete_point(self.cur_poly)
     
    197189
    198190
     191class PolyButton(Button):
     192    """Button for coosing the correct polygon"""
     193
     194    def __init__(self, index, level_widget):
     195        if index is not None:
     196            text = "Draw: %s" % index
     197        else:
     198            text = 'Exit Draw Mode'
     199        super(PolyButton, self).__init__(text)
     200        self.index = index
     201        self.level_widget = level_widget
     202
     203    def action(self):
     204        self.level_widget.change_poly(self.index)
     205
     206
    199207class EditorApp(RootWidget):
    200208
     
    205213        self.add(self.level_widget)
    206214
     215        # Add poly buttons
     216        y = 15
     217        for poly in range(1, 7):
     218            but = PolyButton(poly, self.level_widget)
     219            but.rect = pygame.rect.Rect(0, 0, MENU_WIDTH // 2 - MENU_PAD,
     220                                        MENU_BUTTON_HEIGHT)
     221            if poly % 2:
     222                but.rect.move_ip(MENU_LEFT, y)
     223            else:
     224                but.rect.move_ip(MENU_LEFT + MENU_WIDTH // 2 - MENU_HALF_PAD,
     225                                 y)
     226                y += MENU_BUTTON_HEIGHT + MENU_PAD
     227            self.add(but)
     228
     229        end_poly_but = PolyButton(None, self.level_widget)
     230        end_poly_but.rect = pygame.rect.Rect(0, 0, MENU_WIDTH,
     231                                             MENU_BUTTON_HEIGHT)
     232        end_poly_but.rect.move_ip(MENU_LEFT, y)
     233        self.add(end_poly_but)
     234        y += MENU_BUTTON_HEIGHT + MENU_PAD
     235
    207236        quit_but = Button('Quit', action=self.quit)
    208237        quit_but.rect = pygame.rect.Rect(0, 0, MENU_WIDTH, MENU_BUTTON_HEIGHT)
    209         quit_but.rect.move_ip(SCREEN[0], 25)
     238        quit_but.rect.move_ip(MENU_LEFT, y)
    210239        self.add(quit_but)
    211240
Note: See TracChangeset for help on using the changeset viewer.