Estou desenvolvendo um jogo usando pesquisas para o método de entrada. No entanto, agora que estou aprofundando os menus do jogo e outros componentes da interface do usuário, estou descobrindo que provavelmente gostaria de ter uma entrada orientada a eventos. Talvez até tendo os dois, usando eventos direcionados para a interface do usuário e sondando a entrada "mundo". Estou curioso para saber qual é o melhor caminho a percorrer.
Estou definindo a pesquisa como: a cada ciclo de atualização, verifico quais teclas são pressionadas, onde está o mouse, os botões pressionados, depois os percorremos e executamos ações com base nas informações coletadas.
Estou definindo evento orientado como: eventos baseados em interrupção, quando um evento acontece e a interrupção é acionada e um bloco de código é executado com base no evento.
Você acha que é melhor seguir todos os eventos, todas as pesquisas ou é aceitável uma combinação de ambos? Se você tem prós e contras, liste-os. Obrigado.
EDITAR
O jogo é baseado em Java / OpenGL, por isso será lançado no Windows / Mac / Linux. A possibilidade de estender isso para dispositivos móveis é baixa. O jogo é estilo RTS, terceira pessoa 3D.
EDIT 2
Ainda não estou totalmente satisfeito com a maneira como implementei isso, mas o que estou buscando é capturar eventos na minha interface do usuário e se eles não forem tratados por nenhum dos meus componentes da interface do usuário, passo o evento para o diretório "Mundo" para picking / seleção. Algo como:
@Override
private boolean handleEvent(Event event) {
if(hud.handleEvent(event)) {
return true;
}
return WORLD.handleEvent(event);
}
Dessa forma, não recebo cliques vazando pela interface do usuário para selecionar objetos atrás dos botões e o que não.
Atualmente, meus controles de câmera ainda são baseados em pesquisas, e isso parece estar funcionando por enquanto, mas posso atualizá-los mais tarde.
Agradeço todas as respostas, desculpe, eu só poderia escolher uma!