Problème d'affichage du menu sur pygame
Fermé
marinside
Messages postés
9
Date d'inscription
mercredi 19 décembre 2018
Statut
Membre
Dernière intervention
27 mars 2019
-
27 mars 2019 à 17:38
bhof - 28 mars 2019 à 09:31
bhof - 28 mars 2019 à 09:31
A voir également:
- Problème d'affichage du menu sur pygame
- Menu déroulant excel - Guide
- Menu contextuel windows 11 retrouver l'affichage classique - Guide
- Menu démarrer windows 11 - Guide
- Canon quick menu - Télécharger - Utilitaires
- Menu demarrer - Guide
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()