Estou implementando um sistema de mensagens e estou pensando em como devo lidar com eventos. Devo publicá-las e enviá-las aos ouvintes apropriados assim que recebê-las ou devo colocá-las na fila e despachar apenas quando for solicitado (provavelmente pelo loop do jogo principal)?
Editar: Mais informações
Meu jogo é um jogo de plataformas 2D, então o desempenho não será muito difícil de alcançar. Considerando o que Roy T. disse , acho que devo enviar o evento assim que ele for publicado; parece não haver necessidade de enfileirá-lo (a menos que esteja faltando alguma coisa, é claro).
fonte
Convém ter os dois disponíveis e usar o correto para o ouvinte atual. Por exemplo, seu sistema de entidades pode querer saber imediatamente para remover um inimigo, para que não seja atualizado e movido, mas seu sistema de inventário poderá esperar, pois o jogador não poderá usar o item até a próxima quadro de qualquer maneira.
Portanto, ao vincular o evento, o ouvinte deve especificar quando deseja ser atualizado:
fonte
Ouvintes de eventos C # são chamados em ordem de inscrição, imediatamente quando o evento ocorre. Eu faria o mesmo. Estou usando esses no meu jogo 2D, e está funcionando muito bem até agora.
fonte