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

Her*_*nio 3 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))有没有一种方法可以创建无限量的独立用户创建的事件,例如在示例计时器代码中?

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

pmo*_*eri 5

用户事件应该介于:

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

所以你可以有 9 个不同的用户事件。

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

SOME_EVENT = pygame.USEREVENT + 0
ANOTHER_EVENT = pygame.USEREVENT + 1
...
Run Code Online (Sandbox Code Playgroud)

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

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