pygame的初学者问题

时间:2011-05-01 21:46:50

标签: python pygame

我刚开始一个非常简单的pygame代码,在白色背景上绘制绿线。但是,我必须使用pygame.display.flip()才能显示它,但似乎每次我做出改变时我都必须使用它,这对我来说似乎太不切实际了。我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

是的,每次要更新屏幕时都必须调用它。默认情况下,pygame使用双缓冲Wiki link

答案 1 :(得分:3)

这是有充分理由的。双缓冲是一种用于防止“闪烁”的技术。基本上,您想要将帧绘制到内存而不是显示器,然后在绘制时立即将帧全部推出。否则,您可以看到同一帧的不同元素在不同时间上升。

您要做的是每帧抽奖只调用一次pygame.display.flip(),而不是每次更改后调用draw。通常,这是通过在物理操作和游戏规则完成后在帧结束时调用“flip()”函数来完成的,draw在{{1}结束时完成}。