首页 > 解决方案 > 在游戏循环中发出异步请求(Python/Pygame)

问题描述

我还没有处理过异步请求,我的问题是我在无限循环中有一个同步请求,有时需要一段时间,导致在循环中运行的游戏停止

简化的代码如下所示:

while True:
    data = requests.get('some-url')

    # the game code that is sometimes being halted here

有没有一种简单的方法可以在请求中添加一个awaitasync关键字并完成它?我不介意数据陈旧,我宁愿优先考虑游戏循环运行顺畅

任何朝着正确方向的轻推都会受到极大的赞赏!

标签: pythonasynchronouspygame

解决方案


虽然我从未尝试过在 pygame 代码中添加线程,但我看不出它为什么不起作用。

看看这里的文档。

您可以在线程中启动长时间运行的事物,并让它在完成时触发线程事件(不是 pygame 事件)。您可以让线程事件创建并触发一个 pygame USEREVENT,您可以在事件循环中获取并响应该事件。


推荐阅读