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

2023-12-12

这个问题是由于需要创建大量 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(...)您可以为事件分配属性,这样您就可以创建许多不同的子事件并为其分配附加数据,例如:关键事件。

不幸的是当你使用pygame.time.set_timer()你只需要一个 ID 就可以了。

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

Pygame-创建更多 USEREVENT 类型事件的方法? 的相关文章