Problème d'affichage du menu sur pygame
marinside
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
bhof -
bhof -
Bonjour je suis en isn et lorsque que j'essaye de lancer le programme du menu
cela ne marche pas, ecran noir... comment faire ?
ecran = pygame.display.set_mode((700,700)).convert()
fond = pygame.image.load("newyork.jpg")
fond.blit(fond,(0,0))
pygame.display.flip() #pour que les instrcutions soient appliquées
clock = pygame.time.Clock()
def menu():
intro = True
while intro:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
ecran = pygame.display.set_mode((700,700)).convert()
fond = pygame.image.load("newyork.jpg")
fond.blit(fond,(0,0))
pygame.display.update() #pour que les instrcutions soient appliquées
if event.type == KEYDOWN:
if event.key == K_RETURN: #jeu
mode=2
if event.type ==K_SPACE:
instructions=pygame.image.load("loris.jpg").convert() #toujours pas mais a faire info et regles
fenetre.blit(instructions,(0,0))
pygame.display.update()
menu()
cela ne marche pas, ecran noir... comment faire ?
ecran = pygame.display.set_mode((700,700)).convert()
fond = pygame.image.load("newyork.jpg")
fond.blit(fond,(0,0))
pygame.display.flip() #pour que les instrcutions soient appliquées
clock = pygame.time.Clock()
def menu():
intro = True
while intro:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
ecran = pygame.display.set_mode((700,700)).convert()
fond = pygame.image.load("newyork.jpg")
fond.blit(fond,(0,0))
pygame.display.update() #pour que les instrcutions soient appliquées
if event.type == KEYDOWN:
if event.key == K_RETURN: #jeu
mode=2
if event.type ==K_SPACE:
instructions=pygame.image.load("loris.jpg").convert() #toujours pas mais a faire info et regles
fenetre.blit(instructions,(0,0))
pygame.display.update()
menu()
A voir également:
- Problème d'affichage du menu sur pygame
- Menu contextuel windows 11 retrouver l'affichage classique - Guide
- Menu déroulant excel - Guide
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Canon quick menu - Télécharger - Utilitaires
1 réponse
Bonjour.
Beaucoup de problèmes dans ton code.
- pygame.display.set_mode ne doit être déclaré qu'une seule fois.
- pygame.display.update() ne doit être appelé qu'une seule fois (c'est une opération très coûteuse).
- Les chargements d'images (pygame.image.load) ne doivent JAMAIS être effectués dans une boucle, le chargement d'une image est une opération lente et coûteuse car accès disque, il faut charger les images une unique fois au début du script.
- Il faut revoir ce que doivent être les paramètres du blit.
Voici à peu près comment devrait être organisé ton code (j'ai essayé d'indenter ton code par déduction...).
Beaucoup de problèmes dans ton code.
- pygame.display.set_mode ne doit être déclaré qu'une seule fois.
- pygame.display.update() ne doit être appelé qu'une seule fois (c'est une opération très coûteuse).
- Les chargements d'images (pygame.image.load) ne doivent JAMAIS être effectués dans une boucle, le chargement d'une image est une opération lente et coûteuse car accès disque, il faut charger les images une unique fois au début du script.
- Il faut revoir ce que doivent être les paramètres du blit.
Voici à peu près comment devrait être organisé ton code (j'ai essayé d'indenter ton code par déduction...).
ecran = pygame.display.set_mode((700,700)).convert() fond = pygame.image.load("newyork.jpg") instructions = pygame.image.load("loris.jpg").convert() fond.blit(fond, (0,0)) pygame.display.flip() #pour que les instrcutions soient appliquées clock = pygame.time.Clock() # NE SERT PAS... def menu(): intro = True while intro: for event in pygame.event.get(): if event.type == pygame.QUIT: # pygame.quit() # quit() # KÉSAKO ? return # ecran = pygame.display.set_mode((700,700)).convert() # NON # fond = pygame.image.load("newyork.jpg") # NON # fond.blit(fond, (0,0)) # PAS ICI # pygame.display.update() #pour que les instrcutions soient appliquées # NON elif event.type == KEYDOWN: # ON UTILISE UN ELIF if event.key == K_RETURN: #jeu mode=2 # KÉSAKO ? img = fond # AUCUNE IDÉE SI CELA DOIT ÊTRE ÇA DANS TON CODE elif event.type == K_SPACE: # instructions=pygame.image.load("loris.jpg").convert() #toujours pas mais a faire info et regles # NON img = instructions # fenetre.blit(instructions,(0,0)) # D'OÙ SORT FENETRE ? ecran.blit(img, (0, 0)) pygame.display.update() menu() pygame.quit()