Skip to main content
 首页 » 编程设计

python之pygame Sprite 和 pygame.display.flip() 导致工件

2025年05月04日10Terrylee

我正在为大学类(class)编写 Python 俄罗斯方 block 克隆程序。只要我不试图改变下落 block 的路线,它就像魅力一样。当我加速它们或向左或向右移动 block 时,我得到了工件,如下面的屏幕截图所示。

block 的每次移动代码都是相同的:

runningBlock.update() 
runningBlock.draw(field) 
screen.blit(field, (20, 20)) 
pygame.display.flip() 

而 update() 方法只是将移动对象的中心设置到一个新位置。 screen 是屏幕截图上的灰色区域,field 是灰色屏幕上方的白色 Playground 。知道我在这里缺少什么吗?

顺便说一句,帧速率设置为 30,应该不是问题,对吧?

请您参考如下方法:

好的,知道了。我只是在更新 block 之前重新填充了该字段:

field.fill((255, 255, 255)) 
runningBlock.update() 
runningBlock.draw(field) 
lyingBlocks.draw(field) 
screen.blit(field, (20, 20)) 
pygame.display.flip()