web-dev-qa-db-fra.com

Différence entre pygame.display.update et pygame.display.flip

Tout comme le titre l'indique, y a-t-il une différence? J'utilisais pygame.display.flip et j'ai vu sur Internet qu'au lieu d'utiliser flip, ils utilisaient pygame.display.update. Lequel est le plus rapide?

23
Yubin Lee

La principale différence entre pygame.display.flip et pygame.display.update est que

  • display.flip() mettra à jour le contenu de tout l'affichage
  • display.update() permet de mettre à jour une partie de l'écran, au lieu de toute la zone de l'écran. Sans passer d'arguments, met à jour l'affichage entier

Pour indiquer à PyGame quelles parties de l'écran il doit mettre à jour (c'est-à-dire dessiner sur votre moniteur), vous pouvez passer un seul pygame.Rect objet , ou une séquence d'entre eux à la fonction display.update(). Un Rect dans PyGame stocke une coordonnée width et height ainsi qu'une coordonnée x- et y- pour la position.

PyGame fonctions d'aube intégrées et la méthode .blit() par exemple, retournent un Rect, vous pouvez donc simplement le passer à display.update() fonction pour ne mettre à jour que la "nouvelle" zone dessinée.

Du fait que display.update() ne met à jour que certaines parties de tout l'écran par rapport à display.flip(), display.update() est plus rapide dans la plupart des cas .

36
elegent

Flip mettra toujours à jour tout l'écran. Update met également à jour tout l'écran, si vous ne donnez pas d'argument. Mais si vous donnez des surfaces comme arguments, il ne mettra à jour que ces surfaces. Cela peut donc être plus rapide, selon le nombre de surfaces que vous lui donnez et leur largeur et hauteur.

7
lain