Votre projet PyGame vise à créer un arrière-plan avec un fond gris et un haut noir, en utilisant pygame.draw.rect() fonction. Malgré de précédentes expériences réussies avec cette fonction, vous rencontrez des résultats de dessin incohérents. Parfois, vous obtenez un écran noir, tandis que d'autres fois, un rectangle gris apparaît partiellement sur l'écran.
La confusion vient du fait que le dessin seul ne produit pas de sortie visible dans PyGame. Après avoir modifié la surface associée, vous devez mettre à jour l'affichage pour rendre ces modifications visibles.
Le dessin se produit sur un objet Surface associé à l'affichage PyGame. Cependant, ces modifications ne sont pas automatiquement reflétées sur l'écran. Pour les rendre visibles, vous devez explicitement mettre à jour l'affichage à l'aide de pygame.display.update() ou pygame.display.flip().
pygame.display.flip() met à jour l'intégralité de l'affichage. display, tandis que pygame.display.update() fournit des mises à jour plus sélectives pour des zones spécifiques de l'écran. Il est généralement plus optimisé pour les affichages logiciels, mais n'est pas pris en charge pour les affichages à accélération matérielle.
Une boucle d'application PyGame typique se compose de plusieurs étapes :
Voici un code modifié qui inclut les mises à jour d'affichage :
import pygame from pygame.locals import * pygame.init() DISPLAY = pygame.display.set_mode((800,800)) pygame.display.set_caption("thing") clock = pygame.time.Clock() run = True while run: # handle events for event in pygame.event.get(): if event.type == QUIT: run = False # clear display DISPLAY.fill(0) # draw scene pygame.draw.rect(DISPLAY, (200,200,200), pygame.Rect(0,400,800,400)) # update display pygame.display.flip() # limit frames per second clock.tick(60) pygame.quit() exit()
En incorporant les mises à jour d'affichage nécessaires , vous devriez maintenant voir l'arrière-plan attendu avec un fond gris et un haut noir.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!