Autres exemples

Une structure de code pour avoir des menus et plusieurs pages

import pygame

def page_accueil():
    continuer = True
    while continuer:
        clock.tick(30)
        # Tracé des éléments de la page
        fen.fill(BLANC)
        dessin_text1 = police.render("1 : Page 1", 1, ROUGE)
        fen.blit(dessin_text1, (100,100))
        dessin_text2 = police.render("2 : Page 2", 1, ROUGE)
        fen.blit(dessin_text2, (100, 190))
        dessin_text_quitter = police.render("Echap : Quitter", 1, ROUGE)
        fen.blit(dessin_text_quitter, (100, 280))
        pygame.display.flip()
        # Navigation dans les pages
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                continuer = False
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_KP1:
                    continuer = False
                    page_1()
                elif event.key == pygame.K_KP2:
                    continuer = False
                    page_2()
                elif event.key == pygame.K_ESCAPE:
                    continuer = False
    pygame.quit()
    
def page_1():
    continuer = True
    while continuer:
        clock.tick(30)
        # Tracé des éléments de la page
        fen.fill(BLEU)
        dessin_text1 = police.render("Echap : Retour au menu", 1, ROUGE)
        fen.blit(dessin_text1, (100,100))
        pygame.display.flip()
        # Navigation dans les pages
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                continuer = False
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    continuer = False
                    page_accueil()
    
def page_2():
    continuer = True
    while continuer:
        clock.tick(30)
        # Tracé des éléments de la page
        fen.fill(VERT)
        dessin_text1 = police.render("Echap : Retour au menu", 1, ROUGE)
        fen.blit(dessin_text1, (100,100))
        pygame.display.flip()
        # Navigation dans les pages
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                continuer = False
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    continuer = False
                    page_accueil()

# ===== Programme principal =====
pygame.init()

LARGEUR = 800
HAUTEUR = 600

BLANC = (255, 255, 255)
NOIR = (0, 0, 0)
ROUGE = (255, 0, 0)
VERT = (0, 255, 0)
BLEU = (0, 0, 255)

fen = pygame.display.set_mode((LARGEUR, HAUTEUR))
clock = pygame.time.Clock()
police = pygame.font.SysFont('freesans', 50)

page_accueil()