pygame.display.update和pygame.display.flip之间的区别

Yub*_*Lee 23 pygame python-2.7

就像标题所暗示的那样,有什么区别吗?我正在使用 pygame.display.flip,我在互联网上看到,而不是使用翻转他们使用pygame.display.update.哪一个更快?

ele*_*ent 37

pygame.display.flip和之间的主要区别pygame.display.update在于

  • display.flip() 将更新整个显示的内容
  • display.update() 允许更新屏幕的一部分,而不是屏幕的整个区域.不传递任何参数,更新整个显示

要告诉PyGame它应该更新屏幕的哪些部分(即在显示器上绘图),您可以将单个pygame.Rect对象或其序列传递给display.update()函数.PyGame中的Rect存储a width和a height以及x- 和 - y坐标的位置.

PyGame的内置dawning函数.blit()方法返回一个Rect,所以你可以简单地将它传递给display.update()函数,以便只更新"new"绘制区域.

由于这样的事实display.update()仅更新整个屏幕的某些部分相比display.flip(),display.update() 在大多数情况下更快.

  • 我想知道为什么他们不直接使用可选参数使其成为“update()”。 (3认同)
  • 因为由于使用了 OpenGL/硬件加速,翻转实际上可能运行得更快。例如,对于 MacBook Pro 2019 上具有 3 个精灵的简单循环,pygame 的翻转给出了“疯狂”的 6 FPS,而矩形区域更新的帧率为 3 FPS。 (2认同)

lai*_*ain 7

翻转将始终更新整个屏幕.如果您不提供参数,更新也会更新整个屏幕.但是如果你将surface(s)作为参数,它将只更新这些表面.所以它可以更快,取决于你给它的表面数量和它们的宽度和高度.