https://uploaddeimagens.com.br/imagens/sem_titulo-1-jpg--1635
Boa tarde Jeferson! Testando o jogo percebi que mesmo sem o pássaro encostar nos canos as vezes acontece esse problema
public class VerificadorDeColisão {
private Passaro passaro;
private Canos canos;
public VerificadorDeColisão(Passaro passaro, Canos canos) { // construtor que recebe por parametro passaro e cano
this.passaro = passaro;
this.canos = canos;
}
public boolean temColisao() { // confere se há colisão retornando o resultado do método canos.temColisao(passaro) da classe Canos
return canos.temColisaoCom(passaro);
}
}
public boolean temColisaoCom(Passaro passaro) {
for (Cano cano: canos) {
if (cano.temColisaoHorizontalCom(passaro) // confere se há colisão com o topo do cano &&
&& cano.temColisaoVerticalCom(passaro)){ // e com a lateral do cano
return true;
}
}
return false;
}
public boolean temColisaoHorizontalCom(Passaro passaro) { // passaro.X (altura do passaro) + seu raio
return this.posicao < passaro.X + passaro.RAIO;
}
public boolean temColisaoVerticalCom(Passaro passaro) {
return passaro.getAltura() - passaro.RAIO < this.alturaDoCanoSuperior
|| passaro.getAltura() + passaro.RAIO > this.alturaDoCanoInferior;
}