@Override public void preProcessarJogo() { /** Limites */ for (Obstaculo obstaculo : obstaculos) { GestorIntercepcoes.atualizaColisao(personagem, obstaculo); if (personagem.getColisao().base && personagem.mg.getVy() >= 0) { personagem.mg.setY(obstaculo.getY() - personagem.getAltura()); personagem.mg.setVy(0); personagem.setEmSalto(false); } if (personagem.getColisao().topo) { personagem.mg.setY(obstaculo.getY() + obstaculo.getAltura()); personagem.mg.setVy(1); } if (personagem.getColisao().esquerda) { personagem.mg.setX(obstaculo.getX() + obstaculo.getLargura()); } if (personagem.getColisao().direita) { personagem.mg.setX(obstaculo.getX() - personagem.getLargura()); } personagem.getColisao().reeniciar(); for (BolaQJ bola : bolas) { GestorIntercepcoes.atualizaColisao(bola, obstaculo); if (bola.getColisao().topo) { bola.setVy(-bola.getVy()); bola.setY(obstaculo.getY() + obstaculo.getAltura()); bola.getColisao().reeniciar(); } if (bola.getColisao().base) { bola.setVy(-bola.getVy()); bola.setY(obstaculo.getY() - bola.getDiametro()); bola.getColisao().reeniciar(); } } } criaLimitesDeColisao(personagem); for (BolaQJ bola : bolas) { criaLimitesDeColisao(bola); if (bola.getColisao().base) { bola.decvyAC(); } } for (Obstaculo obstaculo : obstaculos) { for (Estrela estrela : estrelas) { GestorIntercepcoes.atualizaColisao(estrela, obstaculo); } if (arpao.activo()) { GestorIntercepcoes.atualizaColisao(arpao, obstaculo); // ignorar colisao na base do arpao em contacto com um obctaculo arpao.getColisao().base = false; if (arpao.getColisao().tem()) { arpao.iniciar(); arpao.getColisao().reeniciar(); } } } for (Estrela estrela : estrelas) { criaLimitesDeColisao(estrela); } }
public Colisao criaLimitesDeColisao(Obstaculo o) { return criaLimitesDeColisao(o.getX(), o.getY(), o.getLargura(), o.getAltura(), o.getColisao()); }