Python Pygame窗口在使用线程时冻结

Python Pygame窗口在使用线程时冻结,python,pygame,python-multithreading,Python,Pygame,Python Multithreading,我有一个pygame脚本,它以白屏启动,然后在用户键入内容时转换为黑屏。用户输入由另一个线程处理,我使用queue.queue将消息从输入线程传递到pygame线程 问题是,每当我运行脚本时,pygame窗口都会在短时间后冻结。如果我快速输入一些东西,屏幕将从白色变为黑色,但窗口仍然冻结。我不确定脚本在哪里卡住了 导入pygame 导入线程 导入队列 q=队列。队列() pygame.init() #rgb码 黑色=(0,0,0) 白色=(255,255,255) game_display=py

我有一个pygame脚本,它以白屏启动,然后在用户键入内容时转换为黑屏。用户输入由另一个线程处理,我使用
queue.queue
将消息从输入线程传递到pygame线程

问题是,每当我运行脚本时,pygame窗口都会在短时间后冻结。如果我快速输入一些东西,屏幕将从白色变为黑色,但窗口仍然冻结。我不确定脚本在哪里卡住了

导入pygame
导入线程
导入队列
q=队列。队列()
pygame.init()
#rgb码
黑色=(0,0,0)
白色=(255,255,255)
game_display=pygame.display.set_模式((800800))
def屏幕_1():
崩溃=错误
#保存来自输入线程的消息
味精=“”
游戏显示填充(白色)
虽然没有崩溃:
#检查队列中是否有任何消息
尝试:
msg=q.get(False)
队列除外。空:
通过
如果消息:
返回屏幕_2()
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
崩溃=真
pygame.display.update()
def屏幕_2():
崩溃=错误
游戏显示填充(黑色)
虽然没有崩溃:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
崩溃=真
pygame.display.update()
def inputFunc():
msg=input('键入内容:\n')
q、 放(味精)
t1=线程。线程(目标=屏幕1)
t2=线程。线程(目标=inputFunc)
t1.start()
t2.start()

好的,我刚刚发现在线程中运行pygame位会导致窗口冻结。如果我只为
inputFunc
创建一个线程,并调用
screen\u 1
一切正常