在尋求迅速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