python - Pygame- 创建更多 USEREVENT 类型事件的方法?

标签 python events pygame limit

这个问题是由于需要创建大量 USEREVENT 类型的事件而产生的。由于我找不到有关如何创建超过限制允许的更多用户事件的信息,所以我来这里寻求帮助。

目前我知道 USEREVENT 类型事件的值为 24,允许的最大 id 为 31。我还发现一些 id-s 是保留的,至少在官方文档的一个评论中(http://www.pygame.org/docs/ref/event.html#comment_pygame_event_Event) ).

基于所有这些,这是我的两部分问题:这些 SDL_EVENT_RESERVED 事件 ID 是否可以安全地用作用户创建事件的额外空间(例如,计时器:pygame.time.set_timer(USEREVENT + 7, 1000)) 并且有没有一种方法可以创建无限数量的单独的用户创建事件,就像在示例计时器代码中那样?

如果由于措辞不当或其他问题导致问题无法理解,我很抱歉。

最佳答案

用户事件应该介于:

  • pygame.USEREVENT:24
  • pygame.NUMEVENTS:32

因此您可以有 9 个不同的用户事件。

通常的做法是定义一个常量:

SOME_EVENT = pygame.USEREVENT + 0
ANOTHER_EVENT = pygame.USEREVENT + 1
...

如果您使用 event(...) 创建事件,您可以为事件分配属性,这样您就可以创建许多不同的子事件并为它们分配额外的数据,例如:key事件。

不幸的是,当您使用 pygame.time.set_timer() 时,您只能使用一个 ID。

关于python - Pygame- 创建更多 USEREVENT 类型事件的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23571956/

相关文章:

javascript - 一旦开始下载,如何使用 JS 获取图像元数据?

android - 试图弄清楚如何获取 Android 的触摸事件

javascript - 使用文本输入值动态更改链接 href 属性

python - 将模块添加到 Python 2.7 库

python - 从 Modular Mojo 加载 Python 标准模块

python - 如何在keras中使用model.fit_generator

python - Pygame - 在某个特定时间渲染 Sprite

python - 采用 1 个位置参数,但给出了 2 个

python - 在 Python 中重现随机生成关卡的最简单方法是什么?

Python Pygame 窗口没有响应