Ejemplo n.º 1
0
 def make_settings_menu(self, width, height):
     self.settings_menu = pgmen.Menu(title='Settings',
                                     width=width,
                                     height=height,
                                     theme=self.get_theme(),
                                     mouse_enabled=True,
                                     mouse_motion_selection=True)
     self.settings_menu.add.button('volume up', volume_up)
     self.settings_menu.add.button('volume down', volume_down)
     self.settings_menu.add.button('Back', self.change_settings_menu_status)
Ejemplo n.º 2
0
    def __init__(
            self, level, player, game_width, game_height, fire_speed,
            game_over_func=None, gravity=False, fire_list_coords=None,
            theme=pygame_menu.themes.THEME_BLUE, fire_delay=None):
        self.timer = pygame.time.Clock()
        self.entities = pygame.sprite.Group()  # Все объекты
        self.run = True
        self.paused = False

        self.fire_list_coords = []
        # Window size
        self.WIN_SIZE = self.WIN_WIDTH, self.WIN_HEIGHT = game_width, game_height
        # Группируем ширину и высоту в одну переменную
        self.DISPLAY = (self.WIN_WIDTH, self.WIN_HEIGHT)
        # Game
        self.level = level
        self.fire_speed = fire_speed

        # Delay for fire spreading
        self.fire_counter = 0

        # Delay for starting level
        if fire_delay is None:
            self.fire_delay = 300
        else:
            self.fire_delay = fire_delay

        self.game_over_func = game_over_func
        self.platforms = []
        self.seed = 0
        self.x = self.y = 0  # координаты
        self.player = player
        self.entities.add(self.player)
        if fire_list_coords is not None:
            self.fire_list_coords = fire_list_coords
        else:
            self.fire_list_coords = [FIRE_START]
        # Высчитываем фактическую ширину уровня
        self.total_level_width = len(self.level[0]) * PLATFORM_WIDTH
        self.total_level_height = len(self.level) * PLATFORM_HEIGHT  # высоту
        # Camera for player
        self.camera = Camera(
            self._camera_configure,
            self.total_level_width,
            self.total_level_height)

        # Pause menu for level
        self.PAUSE_MENU = pygame_menu.Menu(
            self.WIN_WIDTH // 3, self.WIN_HEIGHT // 3, 'Paused',
            theme=theme)
        self.PAUSE_MENU.add_button('Continue', action=self._continue_game)
        self.PAUSE_MENU.add_button('Save game', action=self._return_game_val)
        self.PAUSE_MENU.add_button(
            'Quit to menu',
            action=self._stop_level)
Ejemplo n.º 3
0
 def __init__(self, display):
     """
     Args:
         display (pygame Display): game area
     """
     self.display = display
     display_x, display_y = display.get_size()
     self.menu = pygame_menu.Menu("Sudoku",
                                  display_x,
                                  display_y,
                                  theme=pygame_menu.themes.THEME_BLUE)
 def __init__(self, window, text):
     width = 500
     height = 100
     super().__init__(width, height, window)
     self.menu = pgmen.Menu(title='warning',
                            width=width,
                            height=height,
                            position=(50, 50),
                            theme=self.get_theme(),
                            enabled=True)
     self.menu.add.label(text)
Ejemplo n.º 5
0
def play_again_menu():
    pygame.display.set_caption("Menu")
    surface = pygame.display.set_mode((WIDTH, WIDTH))
    menu = pygame_menu.Menu(300,
                            400,
                            "Game Over",
                            theme=pygame_menu.themes.THEME_BLUE)
    menu.add_button("Play Again", main)
    menu.add_button("How To Play", how_to_play)
    menu.add_button("Quit", pygame_menu.events.EXIT)
    menu.mainloop(surface)
Ejemplo n.º 6
0
 def update_load_game_menu(self):
     save = Save()
     self.save_list = [("New Game",0)]
     self.load_game_menu = pygame_menu.Menu("Load Game", 400, 300)
     index = 1
     for savedata in save.list_saves():
         self.save_list.append((savedata, index))
         index += 1
     self.load_game_menu.add.dropselect("Save: ", self.save_list, placeholder="Select a save", placeholder_add_to_selection_box=True, onchange=self.set_save)
     self.load_game_menu.add.button("Load", self.load_game)
     self.load_game_menu.add.button("Back", self.return_to_main_menu)
Ejemplo n.º 7
0
Archivo: menu.py Proyecto: Shrulk/Kosmo
def Pause():
    pause = pygame_menu.Menu(300,
                             400,
                             'Kosmo',
                             theme=pygame_menu.themes.THEME_DARK)

    pause.add_button('Продолжить', main.start_the_game)
    pause.add_button("Сохранить", save)
    pause.add_button('Выход', pygame_menu.events.EXIT)

    pause.mainloop(main.display)
Ejemplo n.º 8
0
def create_pause_menu(screen, screen_width, screen_height, main_game_loop):

    pause_menu = pygame_menu.Menu(screen_width,
                                  screen_height,
                                  'Fly me to the moon',
                                  theme=mytheme)

    pause_menu.add_button('Return to Game', main_game_loop)
    pause_menu.add_button('Main Menu', pause_menu.disable)
    pause_menu.add_button('Quit', pygame_menu.events.EXIT)
    return pause_menu
Ejemplo n.º 9
0
    def menu_screen(self):
        """
        Displays menu screen
        :return: None
        """
        theme = pygame_menu.themes.Theme(
            title_bar_style=pygame_menu.widgets.MENUBAR_STYLE_NONE,
            menubar_close_button=False,
            widget_font_color=SMALL_TEXT_COLOR,
            background_color=BG_COLOR,
            widget_font=pygame_menu.font.FONT_OPEN_SANS_BOLD,
            cursor_color=WHITE)

        menu = pygame_menu.Menu(height=SCREEN_HEIGHT,
                                width=SCREEN_WIDTH,
                                title="",
                                theme=theme,
                                menu_position=(50, 0))
        menu.add_label("ChessAI",
                       align=pygame_menu.locals.ALIGN_CENTER,
                       font_name=pygame_menu.font.FONT_OPEN_SANS_BOLD,
                       font_color=LARGE_TEXT_COLOR,
                       font_size=90,
                       margin=(0, 50))
        menu.add_text_input('Name : ',
                            default=self.p1_name,
                            maxchar=10,
                            onchange=self.set_name)
        menu.add_selector('Color : ', [('White', WHITE), ('Black', BLACK)],
                          onchange=self.set_color)
        menu.add_selector('AI : ', [('Minimax', 1), ('Random', 2)],
                          onchange=self.set_ai)
        menu.add_button('Play', self.game_screen)
        menu.add_button('Quit', pygame_menu.events.EXIT)
        menu.add_label("",
                       align=pygame_menu.locals.ALIGN_CENTER,
                       font_color=BLACK,
                       font_size=70,
                       margin=(0, 50))
        menu.center_content()

        # Keeps track of whether menu screen should keep running or stop
        running = True

        # Menu screen loop
        while running:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    exit()

            menu.mainloop(SCREEN)

            pygame.display.flip()
Ejemplo n.º 10
0
    def fim_jogo(self):
        #display = pygame.display.set_mode([200, 200])

        menu = pygame_menu.Menu(200,
                                400,
                                'Fim de jogo',
                                theme=pygame_menu.themes.THEME_DARK)
        menu.add.button('Sair', pygame_menu.events.EXIT)
        menu.mainloop(pygame.display.get_surface())

        pygame.display.update()
Ejemplo n.º 11
0
def create_game_over_view(client, events):
    menu = pygame_menu.Menu('Mother Trucker',
                            SCR_WIDTH,
                            SCR_HEIGHT,
                            theme=pygame_menu.themes.THEME_DARK)
    menu.add.label("Game over")
    winner = events.get_winner()
    text = "Winner: " + winner
    menu.add.label(text)
    menu.add.button('Continue', continue_function, client, events)
    return menu
Ejemplo n.º 12
0
    def __init__(self, arg_screen, sound_path):
        self.menu = pygame_menu.Menu(600,
                                     800,
                                     'Shamboogeon',
                                     theme=self.my_theme())

        self.screen = arg_screen
        self.sound = pygame.mixer.Sound(sound_path)
        self.sound.play(-1)
        self.sound.set_volume(0.1)
        self.response(800, 600)
def create_settings_view(client, events):
    menu = pygame_menu.Menu('Mother Trucker',
                            SCR_WIDTH,
                            SCR_HEIGHT,
                            theme=pygame_menu.themes.THEME_DARK)
    menu.add.button('Some option1')
    menu.add.button('Some option2')
    menu.add.button('Back', back_function, events)
    st = "You are logged as: " + client.get_nick()
    menu.add.label(st).scale(0.5, 0.5)
    return menu
Ejemplo n.º 14
0
    def __init__(self, width, height, position, game_window):
        super().__init__(width, height, game_window)
        self.city_images = CityImages()

        self.menu = pgmen.Menu(title='BUILD - BUY',
                               width=width,
                               height=height,
                               position=position,
                               theme=self.get_theme(),
                               columns=11,
                               rows=1,
                               enabled=False,
                               mouse_enabled=True)

        # ZONING PANEL
        self.zone_building_panel = ZoningPanel(
            width=width,
            height=height,
            position=(100, 100 -
                      100 * height / game_window.window.get_height() - 0.3),
            game_window=game_window)

        # BUY A SPECIAL BUILDING PANEL
        self.special_building_panel = BuySpecialBuildingPanel(
            width=width,
            height=height,
            position=(100,
                      100 - 100 * height / game_window.window.get_height()),
            game_window=game_window)

        # BUTTONS
        scale = (0.075, 0.075)
        self.menu.add.image(self.city_images.get_icon('modern-city'),
                            scale=scale)
        self.zoning_button = self.menu.add.button("zone buildings",
                                                  self.zone_buildings)

        self.zoning_button.select(False)

        self.menu.add.label(' ')
        self.menu.add.label(' ')

        self.menu.add.image(self.city_images.get_icon('capitol'), scale=scale)
        self.buy_building_button = self.menu.add.button(
            "special buildings", self.special_buildings)

        self.menu.add.label(' ')
        self.menu.add.label(' ')

        self.menu.add.image(self.city_images.get_icon('bulldozer'),
                            scale=scale)
        self.bulldoze_button = self.menu.add.button("bulldoze", self.bulldoze)

        self.menu.add.label(' ')
Ejemplo n.º 15
0
 def _build_submenu_counters(self, title):
     menu = pgm.Menu(title=title.capitalize(),
                     width=self.size[0],
                     height=self.size[1],
                     theme=SUBTHEME2_DARK)
     labels = []
     for text in _counters(self.count):
         labels.append(menu.add_label(text))
     menu.add_vertical_margin(40)
     menu.add_button("Reset all", self._on_reset_counters, labels)
     return menu
Ejemplo n.º 16
0
    def __start_game(self):
        while True:  # game loop
            self.__display.fill(
                Settings.SKY_COLOR
            )  # clear screen by filling it with blue all environment will be here

            if self.__grass_sound_timer > 0:
                self.__grass_sound_timer -= 10

            self.__count_scroll()

            self.__draw_background()

            self.__redraw_map()

            self.__player.redraw()

            for event in pygame.event.get():  # event loop
                if event.type == QUIT:
                    pygame.quit()
                    sys.exit()
                if event.type == KEYDOWN:
                    if event.key == K_ESCAPE:
                        menu = pygame_menu.Menu(
                            Settings.WINDOW_SIZE[1],
                            Settings.WINDOW_SIZE[0],
                            'Pause',
                            theme=pygame_menu.themes.THEME_DARK)

                        menu.add_button('Continue', self.__start_game)
                        menu.add_button('Quit', pygame_menu.events.EXIT)
                        menu.mainloop(self.__screen)

                    if event.key == K_1:  # off music
                        pygame.mixer.music.fadeout(1000)
                    if event.key == K_2:  # on music
                        pygame.mixer.music.play(-1)
                    if event.key == K_RIGHT:
                        self.__player.move_right()
                    if event.key == K_LEFT:
                        self.__player.move_left()
                    if event.key == K_UP:
                        self.__player.jump()
                if event.type == KEYUP:
                    if event.key == K_RIGHT:
                        self.__player.stop_right()
                    if event.key == K_LEFT:
                        self.__player.stop_left()

            self.__screen.blit(
                pygame.transform.scale(self.__display, Settings.WINDOW_SIZE),
                (0, 0))  # rendering game session
            pygame.display.update()  # update display
            self.__clock.tick(60)  # maintain 60fps
Ejemplo n.º 17
0
def create_del_user_view(client, events):
    menu = pygame_menu.Menu('Mother Trucker Documents',
                            SCR_WIDTH,
                            SCR_HEIGHT,
                            theme=pygame_menu.themes.THEME_ORANGE)
    menu.add.button('Battles', battles_function, client, events)
    menu.add.button('Users', users_function, client, events)
    #menu.add.button('Stats', stats_function, client, events)
    #menu.add.button('Maps', maps_function, client, events)
    menu.add.button('Back', back_fun, events)
    return menu
Ejemplo n.º 18
0
    def generic_menu(center_content=True,
                     columns=1,
                     height=400,
                     onclose=None,
                     position_x=50,
                     position_y=50,
                     rows=None,
                     theme=pygame_menu.themes.THEME_DEFAULT,
                     title='',
                     width=600,
                     *args,
                     **kwargs):
        """
        Generate a generic test menu.

        :param center_content: Center menu content
        :type center_content: bool
        :param columns: Number of columns
        :type columns: int
        :param height: Menu height (px)
        :type height: int
        :param onclose: Event or function applied when closing the Menu
        :type onclose: :py:class:`pygame_menu.events.MenuAction`, callable, None
        :param position_x: X position of the menu
        :type position_x: int, float
        :param position_y: Y position of the menu
        :type position_y: int, float
        :param rows: Number of rows
        :type rows: int, None
        :param theme: Menu theme
        :type theme: :py:class:`pygame_menu.themes.Theme`
        :param title: Menu title
        :type title: str
        :param width: Menu width (px)
        :type width: int
        :param args: Additional args
        :type args: any
        :param kwargs: Optional keyword arguments
        :type kwargs: dict
        :return: Menu
        :rtype: :py:class:`pygame_menu.Menu`
        """
        return pygame_menu.Menu(center_content=center_content,
                                columns=columns,
                                enabled=False,
                                height=height,
                                menu_position=(position_x, position_y),
                                onclose=onclose,
                                rows=rows,
                                theme=theme,
                                title=title,
                                width=width,
                                *args,
                                **kwargs)
Ejemplo n.º 19
0
def pathfinding_menu():
    pfmenu = pygame_menu.Menu(720,
                              1280,
                              "Path-Finding Algorithms",
                              theme=pygame_menu.themes.THEME_DARK)
    pfmenu.add.button("A* Search", foo, font_size=50)
    pfmenu.add.vertical_margin(50)
    pfmenu.add.button("Dijkstra\'s Algorithm", foo, font_size=50)
    pfmenu.add.vertical_margin(150)
    pfmenu.add.button("Back", select_menu, font_size=50)
    pfmenu.mainloop(screen)
Ejemplo n.º 20
0
def sorting_menu():
    smenu = pygame_menu.Menu(720,
                             1280,
                             "Sorting Algorithms",
                             theme=pygame_menu.themes.THEME_DARK)
    smenu.add.button("Bubble Sort", foo, font_size=50)
    smenu.add.vertical_margin(50)
    smenu.add.button("Merge Sort", foo, font_size=50)
    smenu.add.vertical_margin(150)
    smenu.add.button("Back", select_menu, font_size=50)
    smenu.mainloop(screen)
Ejemplo n.º 21
0
    def _build_submenu(self, section):
        """Build sub-menu"""
        length = 0
        for name, option in DEFAULT[section].items():
            if option[2] and length < len(option[2]):
                length = len(option[2])
        pattern = '{:.<' + str(max(length + 2, 25)) + '} '

        menu = pgm.Menu(self.size[1],
                        self.size[0],
                        section.capitalize(),
                        theme=SUBTHEME1_DARK)

        for name, option in DEFAULT[section].items():
            if option[2]:
                title = pattern.format(option[2])
                if isinstance(option[3], str):
                    menu.add_text_input(
                        title,
                        onchange=self._on_text_changed,
                        default=self.cfg.get(section, name).strip('"'),
                        # Parameters passed to callback:
                        section=section,
                        option=name)
                elif isinstance(option[3], (list, tuple)) and len(option[3]) == 3\
                        and all(isinstance(i, int) for i in option[3]):
                    menu.add_color_input(
                        title,
                        "rgb",
                        default=self.cfg.gettyped(section, name),
                        input_separator=',',
                        onchange=self._on_color_changed,
                        previsualization_width=1,
                        # Parameters passed to callback:
                        section=section,
                        option=name)
                else:
                    values = [(v, ) for v in option[3]]
                    menu.add_selector(
                        title,
                        values,
                        onchange=self._on_selector_changed,
                        default=_find(values, self.cfg.get(section, name)),
                        # Parameters passed to callback:
                        section=section,
                        option=name)

        if section.lower() == 'general':
            menu.add_vertical_margin(40)
            menu.add_button("View counters",
                            self._build_submenu_counters("Counters"),
                            margin=(self.size[0] // 2 - 100, 0))

        return menu
 def create_menu(self):
     """"""
     self._menu = pygame_menu.Menu(300,
                                   400,
                                   "Welcome",
                                   theme=pygame_menu.themes.THEME_SOLARIZED)
     self._menu.add_selector("Number of Players: ", [("One", 1),
                                                     ("Two", 2)],
                             onchange=self.set_number_players)
     self._menu.add_button("Play", self.start_the_game)
     self._menu.add_button("Quit", pygame_menu.events.EXIT)
Ejemplo n.º 23
0
    def __init__(self, app):
        self.app = app

        menu_theme = pygame_menu.themes.Theme(
            background_color=Color.LIGHT_BLUE, # transparent background
            title_shadow=True,
            title_background_color=(4, 47, 126), widget_font_color=Color.WHITE)

        self.menu = pygame_menu.Menu(SCREEN_HEIGHT, SCREEN_WIDTH, 'Connect 4', theme=menu_theme)
        self.menu.add_text_input('Username : '******'Play', self.handle_play)
Ejemplo n.º 24
0
 def prepare_player_list_menu(self):
     self.menu = pygame_menu.Menu(SCREEN_HEIGHT,
                                  SCREEN_WIDTH - 300,
                                  'Connect 4',
                                  theme=self.menu_theme,
                                  menu_position=(0, 0))
     self.menu.add_label(f'Your Score: {self.app.my_score}')
     self.menu.add_label('Available Players: ')
     for player in self.app.players.keys():
         self.menu.add_button(
             f"User: {player}, Score: {self.app.players[player]['score']}",
             lambda: self.handle_choose_player(player))
def create_account_view(client, events):
    account = client.get_nick()
    menu = pygame_menu.Menu('Mother Trucker',
                            SCR_WIDTH,
                            SCR_HEIGHT,
                            theme=pygame_menu.themes.THEME_DARK)
    nick_str = "Your nick: " + account
    menu.add.button(nick_str)
    menu.add.button("Change password or nick", change_password_or_nick, client,
                    events)
    menu.add.button('Back', back_function, events)
    return menu
Ejemplo n.º 26
0
    def __init__(self, menu, sizeX=1920, sizeY=1020):
        self.parent = None

        self.settings = {"MOUSE_CONTROL": True}

        mytheme = pygame_menu.themes.THEME_DARK.copy()
        mytheme.background_color = (0, 0, 0, 0)
        self.menu = pygame_menu.Menu(sizeY, sizeX, 'Settings', theme=mytheme)
        self.menu.add.toggle_switch('Mouse control',
                                    True,
                                    onchange=self.setMouseControl)
        self.menu.add.button('Back', pygame_menu.events.BACK)
Ejemplo n.º 27
0
def startMenu():
    """Инициализирует окно программы, создает виджет меню"""
    pygame.init()
    menu = pygame_menu.Menu(530, 790, 'Меню', theme=mytheme)
    pygame.display.set_caption("Игра про Самурая")

    menu.add_button('Новая игра', start_new_game)
    menu.add_button('Продолжить', startGame)
    menu.add_button('Выйти', pygame_menu.events.EXIT)
    pygame.mixer.music.load('soundtrack.mp3')  # загружаем саундтрек
    pygame.mixer.music.play(-1)  # зацикливает проигрывание музыки
    menu.mainloop(surface)
Ejemplo n.º 28
0
 def __init__(self, screen):
     self.__config = MenuPauseConfigLoader()
     self.__screen = screen
     self.__tema = self.__criar_tema()
     self.__menu = pygame_menu.Menu(self.__screen.get_height(),
                                    self.__screen.get_width(),
                                    'Jogo pausado',
                                    theme=self.__tema)
     self.__menu.add_button("Continuar", self.continuar)
     self.__menu.add_button("Menu principal", self.voltar_menu_principal)
     self.__menu.add_button("Sair", self.sair_do_jogo)
     self.__voltar = False
Ejemplo n.º 29
0
def main_menu():
    pygame.init()
    pygame.display.set_caption("Menu")
    surface = pygame.display.set_mode((WIDTH, WIDTH))
    menu = pygame_menu.Menu(300,
                            400,
                            "Welcome",
                            theme=pygame_menu.themes.THEME_BLUE)
    menu.add_button("Play", partial(main, WIN, WIDTH))
    menu.add_button("How To Play", partial(how_to_use, WIDTH))
    menu.add_button("Quit", pygame_menu.events.EXIT)
    menu.mainloop(surface)
Ejemplo n.º 30
0
def create_pause_menu(theme):
    pause_menu = pygame_menu.Menu(config.WINDOWHEIGHT * 0.9,
                                  config.WINDOWWIDTH * 0.6,
                                  '欢迎',
                                  theme=theme)

    pause_menu.add_button('继续游戏', resume_game)
    pause_menu.add_button('返回标题', return_titlepage)
    pause_menu.add_button('退出游戏', pygame_menu.events.EXIT)

    pause_menu.center_content()
    return pause_menu