无法更新pygame曲面

2024-10-01 02:30:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做游戏。我有3个曲面:gameDisplay(直接渲染角色和背景的地方)、guiSurfinvSurf 我有一个时钟在核心pyhon显示游戏时间与pygame字体。我把时钟拨到guiSurf,然后在我的游戏循环中把guiSurfinvSurf拨到gameDisplay。我的问题是钟在原来的地方留下了一个记号。当它从'07:00'变为'07:01'时,'01'是'00'的顶部,不应该在那里。我想把密码贴出来,但大概有400行。有人知道我做错了什么吗Link to a picture of the clock


Tags: 游戏角色核心地方时间字体时钟pygame
2条回答

很明显,这个钟在guiSurf上闪烁了两次。我猜它一直在叠加之前的时间图像(7:00,7:01,7.02等等)。在将时间引入时钟之前,您需要清除保持时钟的表面:clock_surf.fill(clearcolor, clock_surf.get_rect())

通过在文本所在的位置上点动另一个图像,确保“清除”打印时间的区域。当你把你的表面画到屏幕上时,它就变成了一个“表面”,一直画到被其他东西覆盖为止。你需要先清除这个表面,然后再向它添加其他东西,否则你会得到你看到的效果。通过简单地调用display\u name.fill((0,0,0))在每个游戏开始时打勾,您将“清除”屏幕,然后在屏幕上重新绘制文本,而不会产生溢出效应。当然,你将不得不重新点燃一切屏幕上的每一个滴答声,但这应该不是一个问题,除非你需要blit成千上万的项目。如果你不想重画所有的东西,那么在文本上画一个小矩形,然后重画它,你的问题就应该解决了

我希望这有助于您与您的问题和愉快的编码

相关问题 更多 >