Пример #1
0
    def reload_buttons(self):
        self.buttons = []
        self.buttons.append([])
        for v in ['G','B','Y','R','O','P']:
            b = ToolbarButton(self,v,action='setsnake')
            self.buttons[0].append(b)
        self.buttons.append([])
        for v in ['g','b', 'y', 'r', '0','1']:
            b = ToolbarButton(self,v,action='settile')
            self.buttons[1].append(b)

        ## NEW MAP button
        self.buttons.append([])
        v = 12; b = ToolbarButton(self,v,action='mapsize',label=str(v))
        self.buttons[2].append(b)
        """
        # we don't need so many NEW MAP buttons #
        for v in xrange(3,11):
            b = ToolbarButton(self,v,action='mapsize',label=str(v))
            self.buttons[2].append(b)
        self.buttons.append([])
        for v in xrange(11,19): # second row of map buttons
            b = ToolbarButton(self,v,action='mapsize',label=str(v))
            self.buttons[3].append(b)
        """

        # add buttons for loading map with screenshots
        self.buttons.append([])
        # maps = glob.glob(os.path.join(os.getcwd(),'data','maps')+"/*.png")
        # maps += glob.glob(os.path.join(os.getcwd(),'data','maps')+"/*.json")
        # sort_nicely(maps) # sort (natural order) by first integer - state graph size
        maps = self.ingameState.app.resman.get_levels()
        row = 3 
        for fn in maps:
            fn = os.path.basename(fn)
            state = State(None,None)
            if fn.endswith("png"):
                state.load_from_file(fn)
            else:
                state.load_from_json_file(os.path.join(os.getcwd(),'data','maps',fn))
            thumb = state.get_thumbnail(a=60,resman=self.ingameState.app.resman)
            #t_w, t_h = thumb.get_size()
            #thumb = pygame.transform.scale(thumb,(t_w/2,t_h/2))
            b = ToolbarButton(self,fn,action='mapload',surface=thumb)
            if len(self.buttons[row]) > self.surface.get_width() / WIDTH_OF_BUTTON:
                self.buttons.append([])
                row = row + 1
            self.buttons[row].append(b)
        self.current_button = None
        self.hover_button = None
Пример #2
0
 def _refresh_levels(self):
     maps = self.app.levels
     i = 0
     spacing = 20
     x_o = 50
     y_o = 50
     for fn in maps:
         fn = os.path.basename(fn)
         state = State()
         state.load_from_json_file(os.path.join(os.getcwd(), 'data', 'maps', fn))
         thumb = state.get_thumbnail(resman=self.app.resman)
         per = BUTTONS_PER_ROW
         col = i % per
         row = floor(i / per)
         x = x_o + col * (LevelButton.w + spacing)
         y = y_o + row * (LevelButton.w + spacing)
         b = LevelButton(fn, thumb, x, y, levelnr=i + 1)
         self.levelbuttons.append(b)
         i = i + 1