我刚开始一个非常简单的pygame代码,在白色背景上绘制绿线。但是,我必须使用pygame.display.flip()才能显示它,但似乎每次我做出改变时我都必须使用它,这对我来说似乎太不切实际了。我错过了什么吗?
答案 0 :(得分:3)
是的,每次要更新屏幕时都必须调用它。默认情况下,pygame使用双缓冲Wiki link。
答案 1 :(得分:3)
这是有充分理由的。双缓冲是一种用于防止“闪烁”的技术。基本上,您想要将帧绘制到内存而不是显示器,然后在绘制时立即将帧全部推出。否则,您可以看到同一帧的不同元素在不同时间上升。
您要做的是每帧抽奖只调用一次pygame.display.flip()
,而不是每次更改后调用draw
。通常,这是通过在物理操作和游戏规则完成后在帧结束时调用“flip()
”函数来完成的,draw
在{{1}结束时完成}。