Maison >développement back-end >Tutoriel Python >Pourquoi mes dessins PyGame n'apparaissent-ils pas ?

Pourquoi mes dessins PyGame n'apparaissent-ils pas ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 15:48:15515parcourir

Why Aren't My PyGame Drawings Appearing?

Pourquoi vous ne voyez peut-être rien dessiné dans PyGame

Bien que vous essayiez de restituer des objets dans votre application PyGame, les résultats peuvent apparaître incohérents ou absents. Pour comprendre pourquoi cela se produit, nous devons reconnaître la distinction entre dessiner sur une surface et mettre à jour l'affichage.

Dessiner sur une surface

Dans PyGame, vous dessinez généralement graphiques sur un objet de surface. L'écran que vous voyez dans votre application est en réalité une surface associée à l'affichage. Cependant, dessiner sur cette surface à lui seul ne la rend pas visible dans l'affichage réel.

Mise à jour de l'affichage

Pour afficher les modifications que vous apportez sur la surface, vous devez pour mettre à jour l'affichage. PyGame propose deux méthodes principales pour cela :

  • pygame.display.update() : met à jour uniquement une partie de l'écran.
  • pygame. display.flip() : Met à jour l'intégralité de l'affichage.

Dans votre cas spécifique, vous Vous avez dessiné un rectangle sur la surface, mais vous n'avez pas mis à jour l'affichage. En conséquence, les modifications restent invisibles.

Boucle d'application PyGame typique

Une application PyGame typique suit une boucle qui comprend :

  • Gestion des événements
  • Mises à jour de l'état du jeu
  • Surface effacement
  • Dessin de scène
  • Mise à jour de l'affichage
  • Limitation de la fréquence d'images

Voici un exemple de code mis à jour qui inclut la mise à jour d'affichage nécessaire :

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 intégrant la mise à jour de l'affichage, vous devriez désormais pouvoir voir correctement les objets dessinés dans votre candidature.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn