1 回答
![?](http://img1.sycdn.imooc.com/54dc06a60001ef0401000100-100-100.jpg)
TA贡献1835条经验 获得超7个赞
问题出在 MacOS(以及可能的其他操作系统)上,屏幕仅在检查 pygame 事件后更新。
通常,这是通过调用pygame.event.get()
或 来完成的pygame.event.poll()
。
但是,如果您的程序不关心检查事件,那么调用pygame.event.pump()
也可以。
pygame.event.pump()
链接的文档中简要提到了这个问题。
事件队列中有一些重要的事情必须在内部处理。主窗口可能需要重新绘制或响应系统。如果您长时间未能调用事件队列,系统可能会认为您的程序已锁定。
所以解决方案是在 后调用pygame.event.pump()
(或另一个事件函数)pygame.display.update()
。
更正后的代码将是:
import pygame
import sys
pygame.init()
win = pygame.display.set_mode((500, 500))
pygame.display.set_caption("hello")
font = pygame.font.SysFont("comicsans", 100)
text = font.render("hello", 1, (255, 255, 255))
win.blit(text, (200, 200))
pygame.display.update()
pygame.event.pump() # Make sure events are handled
pygame.time.delay(3000)
pygame.quit()
sys.exit(0)
添加回答
举报