python - 在游戏循环中发出异步请求(Python/Pygame)
问题描述
我还没有处理过异步请求,我的问题是我在无限循环中有一个同步请求,有时需要一段时间,导致在循环中运行的游戏停止
简化的代码如下所示:
while True:
data = requests.get('some-url')
# the game code that is sometimes being halted here
有没有一种简单的方法可以在请求中添加一个await或async关键字并完成它?我不介意数据陈旧,我宁愿优先考虑游戏循环运行顺畅
任何朝着正确方向的轻推都会受到极大的赞赏!
解决方案
虽然我从未尝试过在 pygame 代码中添加线程,但我看不出它为什么不起作用。
看看这里的文档。
您可以在线程中启动长时间运行的事物,并让它在完成时触发线程事件(不是 pygame 事件)。您可以让线程事件创建并触发一个 pygame USEREVENT,您可以在事件循环中获取并响应该事件。
推荐阅读
- kerberos - Java 11:使用 GSS API 的 Kerberos
- xcode10.2 - Xcode 10.2.1 xcode 模拟器不工作
- java - 自 jGit 中的某些提交以来,如何获取所有更改的文件?
- xml - xml文件存储在哪里?
- java - 如何在隐身模式下执行 URLConnection 请求
- c# - 动态 ViewModel 的绑定值在 WPF 中变为空
- java - 从父级获取静态上下文中的测试类名称
- c# - 如何将文本框参数传递到 sql 适配器语句中?
- oracle - MS Access:在设计指南视图中创建链接表不显示要链接到的表?
- angular - 如何从对象中获取键值?