python - 为什么图像显示时会闪烁?
问题描述
我正在我的游戏中制作时钟。大约 60 秒后,它变为下一个数字。我使用下面的子程序在需要时更改时钟图像。我的问题是图像在显示时会闪烁,我不希望这样。
我的代码;
def display_night_clock():
global var_clock
global var_6_am
if var_hide == False:
if var_6_am == False:
if var_clock == 1:
screen.blit(image_12_am, (1266, 0))
pygame.display.update()
if var_clock == 2:
screen.blit(image_1_am, (1266, 0))
pygame.display.update()
if var_clock == 3:
screen.blit(image_2_am, (1266, 0))
pygame.display.update()
if var_clock == 4:
screen.blit(image_3_am, (1266, 0))
pygame.display.update()
if var_clock == 5:
screen.blit(image_4_am, (1266, 0))
pygame.display.update()
if var_clock == 6:
screen.blit(image_5_am, (1266, 0))
pygame.display.update()
if var_clock == 7:
screen.blit(image_7_am, (1266, 0))
pygame.display.update()
var_6_am = True
var_clock = 1
我只是在我的主循环中调用这个子程序。我以前在我的程序中的其他子程序中使用过这种显示图像的方法,并且这些图像不会闪烁。但由于某种原因,这些图像会闪烁。
解决方案
该问题是由多次调用pygame.display.update()
. 在应用程序循环结束时更新显示就足够了。多次调用pygame.display.update()
或pygame.display.flip()
导致闪烁。
从代码中删除所有调用pygame.display.update()
,但在应用程序循环结束时调用一次:
while running:
# [...]
pygame.display.update()
推荐阅读
- python - 如何使用 Pip 将 OpenCV 升级到特定版本?
- python-2.7 - gfortran.exe 抱怨使用 f2py 的“-mno-cygwin”选项
- vsphere - Packer 在 WinRM 连接上超时
- android - 片段中的 webview 场景问题
- html - 显示部分/div 取决于链接中的哈希 # 值之后
- python - 如何在 javascript 图表中抓取数据?
- spring-boot - 在 SkipListener 中未调用 @OnSkipInWrite
- android - 无法将文件从外部存储复制到 Android 9 中的数据目录
- google-apps-script - 谷歌脚本和原始文件名
- python - 无法从 firebase_admin 导入数据库模块