public boolean processarJogo() { if (!continuarAnimacao.activo()) { return false; } /** Colisões */ for (Estrela estrela : estrelas) { estrela.getColisao().reeniciar(); } GestorIntercepcoes<Estrela> giEstrelas = new GestorIntercepcoes<Estrela>(estrelas); if (arpao.activo() && giEstrelas.interceptadoComCirculos(arpao)) { arpao.iniciar(); rebentaEstrela((Estrela) giEstrelas.circuloInterceptado); pontos += 2; } if (!personagem.ressucitar() && giEstrelas.interceptadoComCirculos(personagem)) { morre(); if (vidas.getValor() > 0) { rebentaEstrela((Estrela) giEstrelas.circuloInterceptado); } } for (BolaQJ bola : bolas) { bola.getColisao().reeniciar(); } GestorIntercepcoes<BolaQJ> gi = new GestorIntercepcoes<BolaQJ>(bolas); gi.setRectangulos(obstaculos); if (!personagem.ressucitar() && gi.interceptadoComCirculos(personagem)) { morre(); if (vidas.getValor() > 0) { rebentaBola((BolaQJ) gi.circuloInterceptado); } } if (arpao.activo() && gi.interceptadoComCirculos(arpao)) { arpao.iniciar(); rebentaBola((BolaQJ) gi.circuloInterceptado); pontos += 2; } // reeniciar colisoes personagem.getColisao().reeniciar(); for (Obstaculo obstaculo : obstaculos) { obstaculo.getColisao().reeniciar(); } for (BolaQJ bola : bolas) { bola.getColisao().reeniciar(); } return true; }
public Colisao criaLimitesDeColisao(Obstaculo o) { return criaLimitesDeColisao(o.getX(), o.getY(), o.getLargura(), o.getAltura(), o.getColisao()); }