/** * 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()); }
/** Construit un AngryBirdsModel */ public AngryBirdsModel() { trame(); try { etat = 0; } catch (Exception e) { e.printStackTrace(); } // ********************************************************************* // Initialiser la position de d�part oiseau.setCorpsPosX(150); oiseau.setCorpsPosY(750); // ********************************************************************** // Initialiser la vitesse de d�part oiseau.setCorpsSpeedX(8); oiseau.setCorpsSpeedY(-5); // ********************************************************************** // Initialiser les obstacles listeCorps.add(new ObstacleRect(1200, 200, 80, 50)); listeCorps.add(new ObstacleRect(600, 800, 80, 50)); listeCorps.add(new ObstacleRect(1400, 100, 40, 50)); listeCorps.add(new ObstacleRond(900, 400, 150)); // ********************************************************************** // Initialiser le timer timer = new Timer(); timer.schedule(new FrameTask(), 0, 16); cpt_angle = 0; }
/** * Modifie la vitesse de l'oiseau à la position donnée en paramètre * * @param playerSpeed */ public void setPlayerSpeed(double[] playerSpeed) { oiseau.setCorpsSpeed(playerSpeed); setChanged(); notifyObservers(); }
/** * Retourne un tableau d'entier contenant la vitesse (x,y) de l'oiseau * * @return un tableau d'entier contenant la vitesse (x,y) de l'oiseau */ public static double[] getPlayerSpeed() { return oiseau.getCorpsSpeed(); }
/** * Modifie la position de l'oiseau à la position donnée en paramètre * * @param oiseau .corpsPos */ public void setPlayerPos(double[] newPos) { oiseau.setCorpsPos(newPos); setChanged(); notifyObservers(); }
/** * Retourne un tableau d'entier contenant la position (x,y) de l'oiseau * * @return un tableau d'entier contenant la position (x,y) de l'oiseau */ public double[] getPlayerPos() { return oiseau.getCorpsPos(); }