Package interactif

Class Vaisseau

All Implemented Interfaces:
Serializable, Dessinable

public class Vaisseau extends InteractifPhysique implements Dessinable, Serializable
Classe Vaisseau: représentation sommaire d'un vaisseau à l'aide d'un cercles. Un vaisseau mémorise sa masse, sa charge, son rayon, sa position, sa vitesse, son accélération et la somme des forces qui s'applique sur lui. Une vaisseau a une methode qui permet de s'avancer d'un pas ainsi que des méthodes pour gérer les collisions
See Also:
  • Constructor Details

    • Vaisseau

      public Vaisseau(Vecteur2D position, double charge, double masse, VaisseauImage tuileDuVaisseau)
      Constructeur du vaisseau
      Parameters:
      position - La position du vaisseau
      charge - La charge du vaisseau
      masse - La masse du vaisse
      tuileDuVaisseau - L'objet tuile représentant le vaisseau
  • Method Details

    • avancerUnPas

      public void avancerUnPas(double deltaT)
      Calcule la nouvelle vitesse et la nouvelle position du vaisseau après un certain intervalle de temps.
      Parameters:
      deltaT - intervalle de temps (pas de simulation)
    • creerLaGeometrie

      public void creerLaGeometrie()
      Permet de créer la géométrie du vaisseau.
      Specified by:
      creerLaGeometrie in class InteractifPhysique
    • dessiner

      public void dessiner(Graphics2D g2d)
      Permet de dessiner un vaisseau, sur le contexte graphique passé en parametre.
      Specified by:
      dessiner in interface Dessinable
      Specified by:
      dessiner in class InteractifPhysique
      Parameters:
      g2d - Le contexte graphique
    • formerAireDuVaisseau

      public Area formerAireDuVaisseau()
      Méthode qui forme l'aire d'un objet vaisseau Utile pour les collisions avec des objets définis par un Area (pics, drapeau, portail)
      Returns:
      la forme du vaisseau dans un area
    • gererCollisionAvecBordures

      public void gererCollisionAvecBordures(double largeurComposant, double hauteurComposant)
      Détermine s'il y a une collision avec les bordures de la zone d'animation, puis modifie la vitesse en conséquence
      Parameters:
      largeurComposant - La largeur de la zone d'animation, en mètre
      hauteurComposant - La hauteur de la zone d'animation, en mètre
    • gererCollisionAvecCoin

      public void gererCollisionAvecCoin(Point2D.Double coin)
      Détermine s'il y a collision avec un coin, puis modifie la vitesse du vaisseau en conséquence
      Parameters:
      coin - Le coin d'un bloc avec laquelle le vaisseau entre en collision
    • gererCollisionAvecPlaque

      public void gererCollisionAvecPlaque(PlaqueChargee plaque)
      Détermine s'il y a collision avec une plaque, puis modifie la vitesse du vaisseau en conséquence
      Parameters:
      plaque - La plaque avec laquelle le vaisseau entre en collision
    • gererCollisionAvecSegment

      public void gererCollisionAvecSegment(Segment segment)
      Détermine s'il y a collision avec un segment, puis modifie la vitesse du vaisseau en conséquence
      Parameters:
      segment - Le segment avec laquelle le vaisseau entre en collision
    • getAccel

      public Vecteur2D getAccel()
      Retourne l'accélération du vaisseau
      Returns:
      L'accélération du vaisseau
    • getCollisionTrouvee

      public boolean getCollisionTrouvee()
      Retourne le booléen qui indique si une collision avec un segment a été trouvée
      Returns:
      Le booléen qui indique si une collision avec un segment a été trouvée
    • getDureeCollision

      public double getDureeCollision()
      Retourne la durée de la collision
      Returns:
      La durée de la collision
    • getEnCollision

      public boolean getEnCollision()
      Retourne le booléen qui indique si le vaisseau est en collision
      Returns:
      Le booléen qui indique si le vaisseau est en collision
    • getForceNormale

      public Vecteur2D getForceNormale()
      Retourne la force normale agissant sur le vaisseau
      Returns:
      La force normale agissant sur le vaisseau
    • getMasse

      public double getMasse()
      Retourne la masse du vaisseau
      Returns:
      La masse du vaisseau
    • getModuleVitesseLimite

      public double getModuleVitesseLimite()
      Retourne le module de la vitesse limite du vaisseau
      Returns:
      Le module de la vitesse limite du vaisseau
    • getPositionPrecedente

      public Vecteur2D getPositionPrecedente()
      Retourne la position du vaisseau à l'itération précédente
      Returns:
      La position du vaisseau à l'itération précédente
    • getRayon

      public double getRayon()
      Retourne le rayon du vaisseau
      Returns:
      Le rayon du vaisseau
    • getSommeDesForces

      public Vecteur2D getSommeDesForces()
      Retourne la somme des forces agissant sur le vaisseau
      Returns:
      La somme des forces agissant sur le vaisseau
    • getTuile

      public VaisseauImage getTuile()
      Retourne l'objet VaisseauImage qui contient les propriétés de la tuile du vaisseau
      Returns:
      L'objet VaisseauImage
    • getVitesse

      public Vecteur2D getVitesse()
      Retourne la vitesse du vaisseau
      Returns:
      La vitesse du vaisseau
    • setAccel

      public void setAccel(Vecteur2D accel)
      Modifie l'accélération du vaisseau
      Parameters:
      accel - Accélération du vaisseau
    • setCollisionTrouvee

      public void setCollisionTrouvee(boolean collisionTrouvee)
      Modifie le booléen qui indique si une collision avec un segment a été trouvée
      Parameters:
      collisionTrouvee - Le nouveau booléen qui indique si une collision avec un segment a été trouvée
    • setDureeCollision

      public void setDureeCollision(double dureeCollision)
      Modifie la durée de la collision
      Parameters:
      dureeCollision - La nouvelle durée de la collision
    • setEnCollision

      public void setEnCollision(boolean nouvelEtatDeCollision)
      Modifie le booléen qui indique si le vaisseau est en collision
      Parameters:
      nouvelEtatDeCollision - Le nouveau booléen qui indique si le vaisseau est en collision
    • setForceNormale

      public void setForceNormale(Vecteur2D forceNormale)
      Modifie la force normale agissant sur le vaisseau
      Parameters:
      forceNormale - La nouvelle force normale agissant sur le vaisseau
    • setMasse

      public void setMasse(double masse)
      Modifie la masse du vaisseau
      Parameters:
      masse - Masse du vaisseau
    • setPositionPrecedente

      public void setPositionPrecedente(Vecteur2D positionPrecedente)
      Modifie la position du vaisseau à l'itération précédente
      Parameters:
      positionPrecedente - La nouvelle position du vaisseau à l'itération précédente
    • setRayon

      public void setRayon(double rayon)
      Modifie le rayon du vaisseau
      Parameters:
      rayon - Rayon du vaisseau
    • setSommeDesForces

      public void setSommeDesForces(Vecteur2D sommeForcesSurVaisseau)
      Recalcule l'accélération du vaisseau à l'aide de la nouvelle somme des forces passée en paramètre Ceci aura pour conséquence de modifier l'accélération !!! La méthode provient d'anciens projets (ex-auteur : Caroline Houle) mais a été implementé et modifier pour notre code !!!
      Parameters:
      sommeForcesSurVaisseau - La somme des forces exercées sur le vaisseau
    • setTuile

      public void setTuile(VaisseauImage tuileDuVaisseau)
      Modifie l'objet VaisseauImage qui contient les propriétés de la tuile du vaisseau
      Parameters:
      tuileDuVaisseau - Le nouvel objet VaisseauImage
    • setVitesse

      public void setVitesse(Vecteur2D vitesse)
      Modifie la vitesse du vaisseau
      Parameters:
      vitesse - Vitesse du vaisseau
    • toString

      public String toString(int nbDecimales)
      Permet d'afficher quelques caractéristiques du vaisseau : Sa position, sa vitesse, son accélération, la somme des forces agissant sur lui et sa charge !!! La méthode provient d'anciens projets (ex-auteur : Caroline Houle) mais a été implementé et modifier pour notre code !!!
      Parameters:
      nbDecimales - Le nombre souhaité de décimales après la virgule
      Returns:
      Une chaine présentant quelques caractéristiques du vaisseau