コード例 #1
0
  /**
   * 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;
  }
コード例 #2
0
  /** 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());
  }
コード例 #3
0
  /** 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;
  }
コード例 #4
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();
  }
コード例 #5
0
 /**
  * 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();
 }
コード例 #6
0
  /**
   * 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();
  }
コード例 #7
0
 /**
  * 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();
 }