如何防止pygame应用程序停止响应
问题描述:
在这个循环中实际需要什么来保持程序不停止响应?如何防止pygame应用程序停止响应
import pygame
pygame.init()
program_display = pygame.display.set_mode((600, 800),pygame.RESIZABLE
| pygame.DOUBLEBUF)
program_display.fill((0, 0, 210))
while True:
pygame.display.flip()
附加:
还有一个更复杂的脚本,其中一个退出选项位于另一个循环,在另一个进程/线程。显示处理循环位于它自己的进程/线程中。如果可能的话,我怎么能有几个进程/线程运行,其中只有其中一个提供退出选项?
答
您忘记了退出功能
import pygame,sys
from pygame.locals import *
pygame.init()
program_display = pygame.display.set_mode((600, 800),pygame.RESIZABLE
| pygame.DOUBLEBUF)
program_display.fill((0, 0, 210))
while True:
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
pygame.display.flip()
嗯,这是一个无限循环,要避免这些。您需要添加一种方法来允许用户退出。 –
@SpencerWieczorek这是唯一的方法吗?我编写了更高级的程序,其中一些程序也有无限循环。所有工作的人都有办法退出。这是我需要的吗?我在这个循环中需要它吗?我使用进程/线程,并且此选项位于另一个循环中。 – Andreas
您的程序因为不处理任何事件而挂起。你需要对'pygame.event'模块中的函数进行某种调用。如果你不想处理事件,你应该调用'pygame.event.pump()'让pygame处理一些需要的内部操作。更多信息[这里](http://*.com/documentation/pygame/5110/event-handling#t=201703080502410474434)。 –