pygame.event.get() 在线程内部不返回任何事件
- 2024-12-25 08:51:00
- admin 原创
- 118
问题描述:
所以我有这段代码,可以处理吃豆人风格游戏的用户输入。
def receiving_inputs(self):
while True:
events = pg.event.get()
for event in events:
if event.type == pg.KEYDOWN:
if event.key == pg.K_UP:
self.move = 'n'
elif event.key == pg.K_RIGHT:
self.move = 'e'
elif event.key == pg.K_DOWN:
self.move = 's'
elif event.key == pg.K_LEFT:
self.move = 'w'
time.sleep(1/60)
threading.Thread(target=self.receiving_inputs).start()
当我按下键盘上的任意键时,我不会收到任何事件,但是,移动鼠标将使用此代码返回事件。
令人讨厌的是,当不在线程中时,即在程序的主循环中,这个精确的代码可以完美运行。
仅供参考,我想在这里使用一个线程来尽量减少 pygame 不注册按键的次数(我认为这是由于主循环中的其他原因造成的)。
提前致谢。
解决方案 1:
您根本无法获取任何事件,因为您必须在主线程中获取事件。
请参阅文档pygame.event
:
[...] 应该从主线程调用事件子系统。
只能从其他线程发布事件,但事件队列必须在主线程中处理。
相关推荐
热门文章
项目管理软件有哪些?
- 2025年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
热门标签
云禅道AD