Estou trabalhando em um jogo de tiro 2D de cima para baixo e agora preciso ir além do meu sistema básico de colisão de caixas delimitadoras de retângulos.
Eu tenho grandes níveis com muitos sprites diferentes, todos com formas e tamanhos diferentes. As texturas dos sprites são todos arquivos png quadrados com fundos transparentes, então eu também preciso de uma maneira de ter uma colisão apenas quando o jogador entrar na parte colorida da textura, e não no fundo transparente.
Planejo lidar com a colisão da seguinte maneira:
- Verifique se existem sprites ao alcance do jogador
- Faça um teste de colisão de caixa delimitadora
- Faça uma colisão precisa (onde eu preciso de ajuda)
Não me importo com técnicas avançadas, pois quero acertar isso com todos os meus requisitos em mente, mas não sei como abordar isso. Quais técnicas ou mesmo bibliotecas para tentar. Sei que provavelmente precisarei criar e armazenar algum tipo de forma que represente com precisão cada sprite menos o plano de fundo transparente.
Eu li que por pixel é lento, então, considerando meus grandes níveis e número de objetos, acho que não seria adequado. Também examinei o Box2d, mas não consegui encontrar muita documentação ou exemplos de como colocá-lo em funcionamento com SFML.
fonte