如何 link 这两个 pygame-menus

How to link those two pygame-menus

我使用 Pygame-menu 创建了两个菜单。第一个是开始菜单(打开程序时)。

import pygame
import pygame_menu
from pygame import mixer

pygame.init()

#Mida i nom de la finestra
surface = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Projecte MatZanfe")

font = pygame_menu.font.FONT_8BIT
font1 = pygame_menu.font.FONT_NEVIS

menu = pygame_menu.Menu('Projecte MatZanfe', 600, 400,
                       theme=pygame_menu.themes.THEME_SOLARIZED)

user_input = menu.add.text_input('User: ', font_name = font1, font_color = 'blue')
age_input = menu.add.text_input('Age: ', font_name = font1,font_color = 'Black')
menu.add.button('Start', font_name = font, font_color = 'green')
menu.add.button('Exit', pygame_menu.events.EXIT, font_name = font,font_color = 'red')
menu.mainloop(surface)

然后,另一个是等级选择器。

import pygame
import pygame_menu
from pygame import mixer

pygame.init()

#Mida i nom de la finestra
surface = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Projecte MatZanfe")
#Logotip de la finestra
logotip = pygame.image.load("calculator.png")
pygame.display.set_icon(logotip)

font = pygame_menu.font.FONT_8BIT
font1 = pygame_menu.font.FONT_NEVIS
font2 = pygame_menu.font.FONT_BEBAS

menu = pygame_menu.Menu('Selecció dels mòduls', 600, 400,
                       theme=pygame_menu.themes.THEME_SOLARIZED)

mixer.music.load('LevelSelector.wav')
mixer.music.play(-1)
menu.add.button('Sums', font_name = font2, font_color = 'green')
menu.add.button('Subtracts', font_name = font2, font_color = 'blue')
menu.add.button('Multiplications', font_name = font2,font_color = 'red')
menu.add.button('Divisions', font_name = font2, font_color = 'purple' )
menu.add.button("Back", font_name = font1, font_color = 'black')

menu.mainloop(surface)

我怎么能合并它们,所以当我从第一个菜单按下“开始”按钮时,整个界面显示第二个菜单,但如果我按下“返回”按钮,它 returns 到第一个菜单?文件名是:Menu - Selector.

不太熟悉这个库,但我猜。

在此处勾选docs

来自参考 here,

# Import the required libraries
import pygame
import pygame_menu

# Initialize pygame
pygame.init()
surface = pygame.display.set_mode((600, 400))

# Make menu 2
menu2 = pygame_menu.Menu('Menu 2', 400, 300, theme=pygame_menu.themes.THEME_BLUE)
...

# Make main menu
menu = pygame_menu.Menu('Welcome', 400, 300, theme=pygame_menu.themes.THEME_BLUE)
...
menu.add.button('Menu2', menu2)
menu.add.button('Quit', pygame_menu.events.EXIT)

# Run your menu
menu.mainloop(surface)

您可以假设 surface 是您的显示表面。