在寻求迅速moving的asteroidz clone中,开发人员在由于延迟和错过事件而在事件处理中遇到瓶颈时,优化事件处理的crux crux的快速射击。通过设计,此功能从事件队列中检索所有事件,然后将其删除。结果,当使用多个循环时,只有一个会收到事件,从而导致可能的事件丢失。
解决此问题的关键是仅检索每个帧一次,然后将它们分配到处理处理的各种事件loops或功能。这是一个优化的实现: def handle_events(events): 对于活动中的事件: #...事件处理逻辑... 运行时: event_list = pygame.event.get() #...不需要事件的代码... #第一事件循环 对于event_list中的活动: #...事件处理逻辑... #...不需要事件的代码... #第二个事件循环 对于event_list中的活动: #...事件处理逻辑... #...不需要事件的代码... #处理事件的功能 handle_events(event_list)
通过将所有事件汇总到单个列表中,然后将其传递到不同的循环或函数中,这些事件是有效处理的而不会损失的。此方法可确保所有与事件相关的代码都可以访问相同的最新事件信息。免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3