pygame调用pygame.display.update后屏幕仍不更新,该如何解决?
Pygame屏幕不更新问题修复
你的代码存在2处直接导致显示异常的问题:
- 核心错误:
redraw_window函数中仅引用了pygame.display.update函数对象,没有加括号调用该方法,屏幕刷新逻辑从未实际执行。 - 背景显示异常隐患:你已经通过
pygame.transform.scale(bg, bg_size)得到了适配窗口尺寸的背景图对象image,但实际绘制时调用win.blit传入的仍是原始未缩放的bg,如果原图尺寸和窗口不匹配会出现背景显示不全/错位的问题。
你只需修改redraw_window函数即可解决问题,修改后的代码如下:
def redraw_window(): win.blit(image, (0,0)) # 加括号实际调用屏幕刷新方法 pygame.display.update()
后续你添加玩家飞船、敌方飞船、激光等元素的绘制逻辑时,只需要将所有win.blit绘制操作放在pygame.display.update()之前执行即可,所有内容绘制完成后再统一刷新屏幕。
内容的提问来源于stack exchange,提问作者Aidan
相关产品推荐
相关产品推荐

