pygame.event.get() 在线程内时不返回任何事件

2023-12-20

所以我有这段代码来处理吃豆人风格游戏的用户输入。

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 未注册按键的次数(我假设这是由于主循环中的其他原因造成的)。

提前致谢。


你根本得不到任何事件,因为你必须在主线程中获取事件。
请参阅文档pygame.event https://www.pygame.org/docs/ref/event.html:

[...] 事件子系统应该从主线程调用。

只能从其他线程发布事件,但事件队列必须在主线程中处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pygame.event.get() 在线程内时不返回任何事件 的相关文章

  • 在python中将数据库表写入文件的最快方法

    我正在尝试从数据库中提取大量数据并将其写入 csv 文件 我正在尝试找出最快的方法来做到这一点 我发现在 fetchall 的结果上运行 writerows 比下面的代码慢 40 with open filename a as f writ
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • IndexError:索引 10 超出尺寸为 10 的轴 0 的范围

    我正在以数字方式为 x 网格和 x 向量以及时间网格设置网格 但我再次设置了一个数组x 位置 只能在 0 到 20 之间并且t 时间 将从 0 到 1000 以便求解热方程 但每次我想要 例如 我将步数设置为 10 时 都会收到错误 Tra
  • 使用 Boto3 以字符串形式打开 S3 对象

    我知道使用 Boto 2 可以使用以下命令将 S3 对象作为字符串打开 get contents as string http boto readthedocs org en latest ref file html highlight c
  • Series.sort() 和 Series.order() 有什么区别?

    s pd Series nr randint 0 10 5 index nr randint 0 10 5 s Output 1 3 7 6 2 0 9 7 1 6 order 按值排序并返回一个新系列 s order Output 2 0
  • 使用python从gst管道抓取帧到opencv

    我在用着OpenCV http opencv org 和GStreamer0 10 我使用此管道通过自定义套接字通过 UDP 接收 MPEG ts 数据包sockfd由 python 提供并显示它xvimagesink 而且效果很好 以下命
  • 如何确保 re.findall() 停止在正确的位置?

    这是我的代码 a import re re findall r lt title gt lt title gt a 结果是 title aaa
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • AttributeError:“模块”对象没有属性[重复]

    这个问题在这里已经有答案了 我有两个 python 模块 a py import b def hello print hello print a py print hello print b hi b py import a def hi
  • python 中的 <> 运算符有什么作用?

    我刚刚遇到这个here http www feedparser org feedparser py 总是这样使用 if string1 find string2 lt gt 1 pass 什么是 lt gt 运算符这样做 为什么不使用通常的
  • Python Anaconda:如何测试更新的库是否与我现有的代码兼容?

    我在 Windows 7 机器上使用 Python 2 7 Anaconda 安装进行数据分析和科学计算 当新的库发布时 例如新版本的 pandas patsy 等 您建议我如何测试新版本与现有代码的兼容性 是否可以在同一台机器上安装两个
  • Python代码没有抛出错误,但所需的输出不一样

    无法接收 python 代码的输出 我尝试通过打印每一行来调试代码 def get sum metrics predictions metrics for i in range 0 3 metrics append lambda x x i
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • pandas 相当于 np.where

    np where具有向量化 if else 的语义 类似于 Apache Spark 的when otherwise数据帧方法 我知道我可以使用np where on pandas Series but pandas通常定义自己的 API
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • 在Raspberry pi上升级skimage版本

    我已经使用 Raspberry Pi 2 上的 synaptic 包管理器安装了 python 包 然而 skimage 模块版本 0 6 是 synaptic 中最新的可用版本 有人可以指导我如何将其升级到0 11 因为旧版本中缺少某些功
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • Django 管理器链接

    我想知道是否有可能 如果可以的话 如何 将多个管理器链接在一起以生成受两个单独管理器影响的查询集 我将解释我正在研究的具体示例 我有多个抽象模型类 用于为其他模型提供小型的特定功能 其中两个模型是DeleteMixin 和GlobalMix
  • 用于插入或替换 URL 参数的 Django 模板标签

    有人知道 Django 模板标签可以获取当前路径和查询字符串并插入或替换查询字符串值吗 例如向 some custom path q how now brown cow page 3 filter person 发出请求 电话 urlpar
  • 无法安装最新版本的 Numpy (1.22.3)

    我正在尝试安装最新版本的 numpy 即 1 22 3 但看起来 pip 无法找到最后一个版本 我知道我可以从源代码本地安装它 但我想了解为什么我无法使用 pip 安装它 PS 我有最新版本的pip 22 0 4 ERROR Could n

随机推荐

  • 我的免费送货是在加税后计算的

    我尝试设置 50 美元免运费 但当我添加总计达到 47 00 美元的产品时 税费将被取消并允许免运费 我不敢相信这是标准的 所以我一定有什么设置错误 我在联邦快递 FedEx 和美国邮政 USPS 承运商下设置了免费送货服务 我在配置 销售
  • Spring Boot IMAP 通道适配器在处理大量入站电子邮件时丢失电子邮件

    我有一个正在运行的 Spring boot 应用程序 它正在处理来自专用邮箱的电子邮件 当电子邮件数量有限时 在测试环境中一切都运行良好 在生产环境中 这些电子邮件是由计划作业生成的 有时一批中会有超过 10000 封电子邮件 每封电子邮件
  • 使用 Yii 下载文件

    我正在使用 Yii 框架 并且我有网站允许管理员上传文本文件或 pdf 现在我想允许用户单击链接并开始下载该文件 这在 Yii 框架内是如何实现的 我将文件存储在 Yiiapplication uploads downloads test
  • 会话变量在本地服务器上有效,但在托管服务器上无效

    我正在开发一个简单的 php mysql 讨论论坛 该声明 在我的本地计算机上产生了所需的结果 但是当我上传代码以实时测试论坛时 会话变量的值不再显示 可能是什么原因造成的 可能导致这种情况的一件事是 如果实时 Web 服务器位于使用默认
  • Django:用户登录时发出信号?

    在我的 Django 应用程序中 我需要在用户登录时开始运行一些定期后台作业 并在用户注销时停止运行它们 因此我正在寻找一种优雅的方法来 收到用户登录 注销的通知 查询用户登录状态 从我的角度来看 理想的解决方案是 每个发送的信号djang
  • Python - 找到两个图的所有交点

    我试图找到两个图的所有交点并将它们显示在最终的绘图上 我环顾四周并尝试了多种方法 但一直无法获得我想要的东西 目前 我尝试生成一个列表 其中将列出交点 但我不断收到以下错误 具有多个元素的数组的真值是不明确的 使用a any or a al
  • x64 上的 WMI 链接器错误

    我正在尝试使用 msdn 中的 WMI 示例 http msdn microsoft com en us library windows desktop aa384724 28v vs 85 29 aspx http msdn micros
  • 访问联合类型中的属性

    请考虑下面的简单联合类型示例 interface Alarm alarmText string quali number interface Car speed number type unionT Alarm Car var alarm
  • 使用迭代最近点 (ICP) 时如何在点云库 (PCL) 中标记 NULL 数据

    我正在尝试使用以下方法对齐 2 组点云迭代最近点 ICP 算法集成在点云库 PCL 我收到错误报告 指出找不到足够的对应点 我已经放宽了参数的条件 setEuclideanFitnessEpsilon 1 797e 5 setMaximum
  • 使用 CostModel 获取 LLVM IR 的 cpu 周期

    从LLVM 3 0开始 Analyse目录下有CostModel cpp 参考它的文档 它说 该文件定义了成本模型分析 它为 LLVM IR 提供了非常基本的成本估算 此分析使用代码生成器的服务来估算任何 IR 指令降低为机器指令时的成本
  • 对 System.Windows.Forms 的引用

    我正在使用 C 在 Excel 中执行某些命令 但是当我键入时 using System Windows Forms Visual Studio 无法识别它 当我添加引用时 出现此错误消息 无法添加对 System Windows Form
  • 地图初始化后是否可以更改 Google 地图样式?

    我了解如何使用自定义样式初始化地图 如下所示 var styles featureType water stylers visibility on color ffffff var mapOptions zoom 13 maxZoom 15
  • 如何在控件模板中的WPF中应用ListView列的MinWidth?

    继类似问题的回答之后here https stackoverflow com questions 852872 minwidth for listview column in wpf 我能够在 XAML 页面上设置 MinWidth 我想要
  • ncurses:为什么RGB颜色值范围是0 - 1000?

    对于 RGB 三元组中的每个值 RGB 颜色值范围为 0 255 为什么 ncurses 为 RGB 三元组中的每个值设置范围 0 1000 是否有一种简单的方法可以将 0 255 范围转换为 0 1000 范围 使颜色保持在 0 255
  • JIT 如何在运行时替换优化的机器代码?

    我正在浏览 OpenJDK 源代码 但找不到替换优化代码的地方 我想知道如何在保护模式下完成此操作 这不是操作系统应该阻止的某种自我修改代码吗 JITer 在堆或堆栈中分配空间 并将汇编代码插入其中 不 自我修改代码完全没问题 Virtua
  • 为什么过剩如此严重?

    尽管 openFrameworks 使用了 GLUT 但我看到了很多关于 GLUT 的不好的评论 Cinder 开发人员表示 他们希望尽可能远离 GLUT 那么它有什么不好呢 你永远不应该使用actual过剩 自 2001 年左右以来 它就
  • 我可以在该服务中动态创建的嵌套对象中设置该服务的 this.'something' 吗? (可能是范围问题)

    我有以下服务 它实际上有更多级别和元素 但我将其精简为我想要工作的一个示例 它根据 app data 文件夹中的 csv 文件动态地在其他对象中创建 javascript 对象 与这个问题最相关的行是this images images 在
  • 如何在 swift iOS 中为以下 JSON 响应创建模型类

    你好 我是 swift ios 的初学者 我的要求是必须显示对表列表的 Json 响应 我从网络服务收到响应 响应如下所示 我的要求是如何将模型类映射到数组以及如何在 tableList 中显示它们可以有人帮助我吗 Json响应 id 54
  • DataContext 未绑定在 Style.Trigger 中

    所以我有一些类似于以下的代码 请原谅任何拼写错误 我试图在帖子的 SO 编辑器中进行简化
  • pygame.event.get() 在线程内时不返回任何事件

    所以我有这段代码来处理吃豆人风格游戏的用户输入 def receiving inputs self while True events pg event get for event in events if event type pg KE