gpt4 book ai didi

python - pygame 不会 blit 除非我调用 pygame.event.get()

转载 作者:太空宇宙 更新时间:2023-11-03 14:47:05 26 4
gpt4 key购买 nike

在我的头撞到显示器上 2 小时后,我意识到:

display.blit(mypic, posx, posy)
pygame.display.update()

将无法正常工作(即 不会在屏幕上显示任何内容),除非我调用:

pygame.event.get()

这是地球上最奇怪的错误,还是我遗漏了什么?

我在 python 2.7、mac os high sierra 上运行 pygame,是的,如果这是由于 pygame 和 mac os 之间该死的不兼容,我是最不会感到惊讶的。

关于这里出了什么问题有什么提示吗?

示例代码:

import pygame
winWidth = 800
winHeight = 600
posx = 200; posy = 200
mypic = pygame.image.load("path_to_my_picture.jpg")
COL_BACKGROUND = (255,255,255)

DISPLAYSURF = pygame.display.set_mode((winWidth, winHeight))
pygame.init()
display.fill(COL_BACKGROUND)
display.blit(mypic, posx, posy)

# only including the following line it will blit the picture:
# pygame.event.get()

pygame.display.update()

最佳答案

我不是 100% 确定它如何与 mac 一起工作,但我假设它与 windows 类似,如果你不定期调用 pygame.event.get() 操作系统认为窗口已经停止响应,不再更新。

这在 pygame.event.pump() 下提到在 Pygame 文档的事件页面中

For each frame of your game, you will need to make some sort of call to the event queue. This ensures your program can internally interact with the rest of the operating system. If you are not using other event functions in your game, you should call pygame.event.pump() to allow pygame to handle internal actions.

关于python - pygame 不会 blit 除非我调用 pygame.event.get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48450396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com