问题描述
|
我刚刚开始一个非常简单的pygame代码,该代码在白色背景上绘制了一条绿线。但是,我必须使用pygame.display.flip()才能显示它,但似乎我每次进行更改时都必须使用它,这对我来说做起来似乎不切实际。我想念什么吗?
解决方法
这是有充分的理由的。双缓冲是一种用于防止“闪烁”的技术。基本上,您希望将一帧绘制到内存而不是显示器上,然后在绘制时立即将其全部推入。否则,您会看到同一帧的不同元素在不同时间上升。
您想要做的是每画一幅画仅一次叫
pygame.display.flip()
,而不是每次更改后都叫0。通常,这是通过在物理操作和游戏规则完成后在帧的末尾具有一个“draw
”函数来实现的,并在draw
的末尾具有flip()
。
,是的,您每次要更新屏幕时都必须调用它。 pygame默认使用双缓冲Wiki链接。