Detecção de Colisão 2D
Palavras-chave:
Detecção de colisão, Jogos 2D, Análise de algoritmosResumo
Os algoritmos de detecção de colisão são fundamentais na identificação de objetos que colidem em uma cena. Com o avanço das ferramentas de desenvolvimento para jogos 3D, as técnicas de detecção de colisão tridimensionais evoluíram em precisão e desempenho. Em jogos 2D, contudo, essas técnicas permanecem mais simples, com suporte limitado nas ferramentas de desenvolvimento, o que gera uma lacuna em relação ao progresso observado para objetos 3D. Com o objetivo de expandir e aprimorar as técnicas de detecção de colisão para objetos bidimensionais, este trabalho realizou a implementação e comparação de algoritmos que demonstraram alto desempenho e precisão, integrando-os ao motor de jogos Luna2D, utilizado na disciplina de Desenvolvimento de Jogos do curso de Ciência da Computação. Para selecionar os algoritmos mais eficientes, foi realizada uma revisão bibliográfica baseada no livro 2D Game Collision Detection (Schwarzl, 2012), que apresenta conceitos fundamentais e pseudocódigos para a implementação de vetores e formas planas, além de detalhar métodos de detecção de colisão entre essas formas. Após o estudo do material, definiram-se a linguagem de programação e o ambiente de desenvolvimento para a implementação dos algoritmos: C++, utilizada no motor Luna2D, e o Visual Studio, que oferece ferramentas essenciais para desenvolvimento em C++. Os novos métodos implementados foram comparados com os já existentes no motor para avaliação de desempenho e precisão. Os resultados foram positivos, pois os novos métodos apresentaram um melhor desempenho em relação aos métodos existentes no motor, exceto em um único caso onde ambos os métodos apresentaram desempenho equivalente. Os resultados obtidos indicam que as modificações implementadas contribuíram significativamente para a eficiência dos algoritmos de detecção de colisão. Portanto, o livro 2D Game Collision Detection provou-se uma base teórica eficaz para a implementação de algoritmos de detecção de colisão. Apesar de alguns problemas de desempenho encontrados inicialmente, os algoritmos resultaram em um desempenho final extremamente satisfatório.