Eu dei um resumo sobre as informações gerais do projeto na parte 1
Link da parte 1
Depois de ter feito as 3 mecânicas da parte 1, eu comecei a trabalhar na colisão com os escudos.
Essa parte a princípio eu pensei que ia ser complicada, mas eu dei uma pesquisada na internet e descobri uma forma de testar a colisão, a ideia é bem simples:
Uma linha significa a distância entre 2 pontos, que eu representei no gif acima como uma linha azul;
As linhas vermelhas são as distâncias entre a partícula e cada um dos pontos da linha azul;
O momento onde há a colisão entre a partícula e a linha azul é quando as duas linhas vermelhas se assemelham à linha azul, ou seja, quando:
(distancia da partícula para o ponto 1)+(distancia da partícula para o ponto 2)-(distância entre o ponto 1 e o ponto 2) = 0;
Como tem sempre algum número muito pequeno de erro e também por conta do deslocamento da partícula, em vez de deixar "= 0" eu deixo "< (velocidade da partícula)".
Depois disso eu resolvi fazer orientado a objetos e resolvi usar ArrayList, porque ficava muito mais fácil adicionar e remover elementos, como as camadas de escudos com todos os escudos apagados ou os tiros que saem da tela;
E o movimento dos mísseis é bem parecido com o da nave, eles tem um ângulo e deslocam esse ângulo tentando achar.
Também tem a colisão entre os tiros do jogador e os mísseis do chefe, mas aí foi só checar se a distância entre ambos era menor ou igual à soma dos raios.
Vou deixar o link de download do jogo abaixo
Link de download