screen.blit(player, (xpos, ypos)) 和 pygame 中的 display.flip() 有什么区别?

What is the difference between screen.blit(player, (xpos, ypos)) and display.flip() in pygame?

两者似乎都更新整个屏幕或仅更新屏幕的一部分,但哪个做什么以及如何做?

blit() 不更新屏幕 - 它在缓冲区中绘制图像。

update()/flip() 将缓冲区发送到显示在显示器上的视频卡。

如果您的代码带有 blit() 但没有 update()/flip(),则它不会显示任何内容。


flip() 将所有缓冲区发送到视频卡。可能它可以使用优化的方法来快速完成。

update() 可以用 Rect() 获取列表,并且只发送缓冲区的一部分,这样速度会更快。但是你必须知道你要更换哪些零件。有时很难正确选择要更新的区域。

参见文档:update(), flip()