/** * Verifie si l'oiseau est toujours dans l'ecran et s'il ne touche pas un obstacle (change sa * couleur dans le cas contraire) * * @return si l'animation doit se poursuivre ou non */ public boolean poursuiteAnim() { for (Obstacle i : listeCorps) { for (int cp = (listeCorps.indexOf(i)); cp < listeCorps.size(); cp++) { if (i.collision()) { try { etat = 1; img = ImageIO.read(new File("ressources/oiseau_vener_collision.png")); } catch (Exception e) { e.printStackTrace(); } if (!i.equals(listeCorps.get(cp))) i.appliquerCollision(listeCorps.get(cp)); setChanged(); notifyObservers(); return false; } } } return (oiseau.getCorpsPosX() + Constantes.DIAMETRE) > Constantes.BORD_GAUCHE && (oiseau.getCorpsPosX() + Constantes.DIAMETRE) < Constantes.BORD_DROIT && (oiseau.getCorpsPosY() + Constantes.DIAMETRE) > Constantes.PLAFOND && (oiseau.getCorpsPosY() + Constantes.DIAMETRE) < Constantes.SOL; }
/** Applique les forces et enregistre la trajectoire de l'oiseau */ public static void trame() { for (Obstacle o : AngryBirdsModel.listeCorps) { for (int cp = (listeCorps.indexOf(o)); cp < listeCorps.size(); cp++) { System.out.println( "Obstacle " + o + " : " + o.getCorpsPosX() + "," + o.getCorpsPosY() + " - " + o.getCorpsSpeedX() + "," + o.getCorpsSpeedY()); if (o.collision()) { if (!o.equals(listeCorps.get(cp))) o.appliquerCollision(listeCorps.get(cp)); } o.mouvement(); } } oiseau.setCorpsSpeedY(oiseau.getCorpsSpeedY() + 0.1); // (oiseau.poids/1000); oiseau.setCorpsPosX(oiseau.getCorpsPosX() + oiseau.getCorpsSpeedX()); oiseau.setCorpsPosY(oiseau.getCorpsPosY() + oiseau.getCorpsSpeedY()); }