示例#1
0
class InstructionsMenu(object):
    main = 2
    chosen = 0
    def __init__(self, parent):
        self.mini_menu = parent.mini_menu
        self.event_handle = parent.event_handle
        self.handle = parent.handle
        self.get_screencopy = parent.get_screencopy
        self.N = parent.N
        
        font = parent.font
        small_font = parent.sfont
        sx, sy = parent.screensize
        minx = sx * 0.1
        miny = sy * 0.15
        maxx = sx * 0.9
        maxy = sy * 0.80
        
        self.text_area = ScrollingTextArea(small_font, (minx, miny),
                                                (maxx, maxy), None)
        y = miny-2*self.text_area.rowheight
        d = (maxx-minx)/3
        self.titles = []
        for i, title in enumerate(titles):
            orig = small_font.render(title, True, colors['white'])
            active = font.render(title, True, colors['yellow'])
            hov = Hoverable((minx+d*i,y), HAT_LEFTDOWN, orig, active)
            self.titles.append(hov)

    def draw(self):
        active_buttons = tuple([self.main])
        last = None
        choice = self.main
##        current_menu = 0
        while True:
            if  active_buttons != last:
                pygame.display.get_surface().blit(self.get_screencopy(),(0,0))
                self.mini_menu.draw(active_buttons)
                self.text_area.set_text(instructions[self.chosen], draw = False)
                for i, rendered in enumerate(self.titles):
                    rendered.draw(i == self.chosen)
                self.text_area.draw()
                pygame.display.flip()
                last = active_buttons
            event, choice = self.event_handle(choice, self.mini_menu.buttons +
                                self.titles, len(self.mini_menu.buttons))
            if event == CHOSE:
                if choice < self.N: #chose something from minimenu
                    return self.handle(choice)  
                else:
                    self.chosen = choice - self.N
                last = None
            elif event == BACK:
                return None
            active_buttons = (self.main, choice)