personnages
Class Personnage

java.lang.Object
  extended by java.lang.Thread
      extended by personnages.Personnage
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
Balle, Bonhomme, Chien

public abstract class Personnage
extends java.lang.Thread

Modelise un Personnage pour une application graphique


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
protected  java.awt.Color couleur
          La couleur du personnage.
protected  int direction
          La direction du personnage ; peut prendre les valeurs constantes DROITE ou GAUCHE.
static int DROITE
          Cette constante permet d'indiquer qu'un personnage doit se deplacer vers la droite.
static int GAUCHE
          Cette constante permet d'indiquer qu'un personnage doit se deplacer vers la gauche.
static int REPOS
          Cette constante indique une position au repos du personnage.
static int SAUTD
          Cette constante indique une position de saut vers la droite.
static int SAUTG
          Cette constante indique une position de saut vers la gauche.
protected  int silhouette
          memorise le type de silhouette du personnage (REPOS, SAUTG,..., ou autre).
protected  int taille
          la hauteur du pesonnage, en pixels.
protected  int x
          L'abscisse du coin superieur gauche du personnage.
protected  int y
          L'ordonnee du coin superieur gauche du personnage.
protected  java.awt.Component zone
          Le composant graphique dans lequel le personnage est trace.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
Personnage()
          cree un personnage abstrait sans aucune caracteristique ni fenetre d'attache.
Personnage(java.awt.Component zone, int x, int y, int taille, java.awt.Color couleur, boolean cyclique)
          cree un personnage avec des caracteristiques initiales.
 
Method Summary
 void changerDirection()
          si la direction vaut DROITE, cette methode la change pour GAUCHE, et vice-versa.
 void demarrer()
          fait demarrer le thread
 void dessiner(java.awt.Graphics g)
          dessine un personnage avec ses caracteristiques actuelles, et avec un rectangle qui l'entoure, si la variable correspondante a ete positionnee a vrai.
abstract  void dessinerP(java.awt.Graphics g)
          dessine le personnage selon ses attributs.
 void dormir()
          si on applique dormir() entre deux pas du personnage, le personnage aura la vitesse accessible par la méthode getVitesse().
 void dormir(int temps)
          fait dormir le pesonnage pendant le temps indique en parametre ; autrement dit interrompt le thread dans lequel tourne cette methode pendant le temps indique.
 boolean estDedans()
          retourne vrai si les dimensions et la position du personnage font qu'il est au moins partiellement visible de son composant graphique.
 boolean estDedans(int x, int y)
          Retourne true ou false selon que le point de coordonnees x et y est dans le rectangle circonscrit au personnage
 boolean estStoppe()
          Indique si le personnage a ete demarre et arrete definitivement
 boolean estSupprime()
          Indique si le personnage est supprime
 boolean estSuspendu()
          Indique si le thread du personnage a ete demarre puis suspendu
 boolean evite(Personnage promeneur)
          indique si le rectangle du personnage intersecte le rectangle du personnage indique en paramètre.
 void faireMouvement(int prochaineSilhouette, int prochainX, int prochainY)
          modifie selon les indications des parametres les caracteristiques du personnage et redessine celui-ci.
 void fairePas()
          fait faire un pas au personnage (vers la droite ou vers la gauche selon la donnee direction qui vaut DROITE ou GAUCHE.
 void fairePas(int pas)
          fait faire un pas au personnage (vers la droite ou vers la gauche selon la donnee direction qui vaut DROITE ou GAUCHE de lngueur pas.
 int getAttente()
          retourne le temps d'attente entre deux mouvements.
 java.awt.Color getCouleur()
          retourne la couleur du personnage.
 boolean getCyclique()
          Lorsque le personnage, en marchant, disparait d'un cote, si la valeur de retour est a true, il reapparait de l'autre, sinon il disparait definitivement
 int getDirection()
          retourne la direction d'un personnage.
 int getPas()
          Indiquela longueur d'un pas du personnage
abstract  java.awt.Rectangle getRectangle()
          retourne le rectangele circonscrit au personnage.
 int getSilhouette()
          Donne l'entier correspondant a la silhouette du personnage
 int getTaille()
          retourne la taille du personnage
 int getVitesse()
          retourne la vitesse du personnage en pixels par seconde.
 int getX()
          retourne l'abscisse d'un point central du personnage dans la fenetre.
 int getY()
          retourne l'ordonnee d'un point central du personnage dans la fenetre.
 void initialiser(java.awt.Component zone, int x, int y, int taille, java.awt.Color couleur, boolean cyclique)
          permet de fixer les differentes attributs du personnage.
 void positionRepos()
          Dessine le personnage dans une position au repos.
 void reprendre()
          si un personnage est en train de marcher, avec sa propre methode run (dans un thread propre), cette méthode suspend le mouvement
 void run()
           
 void sauter()
          fait sauter le personnage.
 void setCouleur(java.awt.Color couleur)
          peut modifier la couleur du personnage, qui est noir par defaut.
 void setCyclique(boolean valeur)
          Lorsque le personnage, en marchant, disparait d'un cote, si la valeur du parametre est a true, il reapparait de l'autre, sinon il disparait definitivement
 void setDirection(int direction)
          modifie la direction du personnage.
 void setPas(int pas)
          return la longueur du pas
 void setSilhouette(int silhouette)
          Permet de choisir la silhouette du personnage
 void setTaille(int taille)
          change la taille du personnage et le redessine.
 void setTempsSaut(int tempsSaut)
          fixe le temps pendant lequel un personnage effectue un saut
 void setTour(boolean valeur)
          pour que le personnage soit ou non entoure d'un rectangle.
 void setVitesse(int vitesse)
          permet de fixer la vitesse du personnage en pixels par seconde.
 void setX(int x)
          permet de fixer l'abscisse d'un point central du personnage dans la fenetre.
 void setY(int y)
          permet de fixer l'ordonnee d'un point central du personnage dans la fenetre.
protected abstract  int silhouetteSuivante()
           
 void stopper()
          interrompt définitivement le mouvement du personnage lorsque celui-ci marche automatiquement (dans un thread, avec sa methode run)
 void supprimer()
          fait stopper le personnage et le rend invisible.
 void suspendre()
          si un personnage est en train de marcher, avec sa propre methode run (dans un thread propre), cette méthode suspend le mouvement
 boolean touche(Personnage promeneur)
          indique si le rectangle du personnage intersecte le rectangle du personnage indique en paramètre.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DROITE

public static final int DROITE
Cette constante permet d'indiquer qu'un personnage doit se deplacer vers la droite.

See Also:
Constant Field Values

GAUCHE

public static final int GAUCHE
Cette constante permet d'indiquer qu'un personnage doit se deplacer vers la gauche.

See Also:
Constant Field Values

REPOS

public static final int REPOS
Cette constante indique une position au repos du personnage.

See Also:
Constant Field Values

SAUTG

public static final int SAUTG
Cette constante indique une position de saut vers la gauche.

See Also:
Constant Field Values

SAUTD

public static final int SAUTD
Cette constante indique une position de saut vers la droite.

See Also:
Constant Field Values

x

protected int x
L'abscisse du coin superieur gauche du personnage.


y

protected int y
L'ordonnee du coin superieur gauche du personnage.


couleur

protected java.awt.Color couleur
La couleur du personnage.


direction

protected int direction
La direction du personnage ; peut prendre les valeurs constantes DROITE ou GAUCHE.


taille

protected int taille
la hauteur du pesonnage, en pixels.


silhouette

protected int silhouette
memorise le type de silhouette du personnage (REPOS, SAUTG,..., ou autre).


zone

protected java.awt.Component zone
Le composant graphique dans lequel le personnage est trace.

Constructor Detail

Personnage

public Personnage()
cree un personnage abstrait sans aucune caracteristique ni fenetre d'attache.


Personnage

public Personnage(java.awt.Component zone,
                  int x,
                  int y,
                  int taille,
                  java.awt.Color couleur,
                  boolean cyclique)
cree un personnage avec des caracteristiques initiales. le personnage apparait au depart avec les caracteristiques correspondant aux parametres.

Parameters:
zone - composant graphique dans lequel le personnage pourra s'afficher.
x - abscisse d'un point central du personnage.
y - ordonnee d'un point central du personnage, comptee a partir du haut de la fenetre.
taille - la hauteur du personnage en pourcentage de la hauteur du composant. Cette taille est limitee a 100.
couleur - la couleur du personnage.
cyclique - Lorsque le personnage, en marchant, disparait d'un cote, si la valeur de ce parametre est a true, il reapparait de l'autre, sinon il disparait definitivement
Method Detail

initialiser

public void initialiser(java.awt.Component zone,
                        int x,
                        int y,
                        int taille,
                        java.awt.Color couleur,
                        boolean cyclique)
permet de fixer les differentes attributs du personnage.

Parameters:
zone - : composant graphique dans lequel le personnage pourra s'afficher.
x - abscisse d'un point central du personnage.
y - ordonnee d'un point central du personnage, comptee a partir du haut de la fenetre.
taille - la hauteur du personnage en pourcentage de la hauteur du composant. Cette taille est limitee a 100.
couleur - la couleur du personnage.
cyclique - Lorsque le personnage, en marchant, disparait d'un cote, si la valeur de ce parametre est a true, il reapparait de l'autre, sinon il disparait definitivement

changerDirection

public void changerDirection()
si la direction vaut DROITE, cette methode la change pour GAUCHE, et vice-versa. Par defaut, la direction vaut droite.


dessiner

public void dessiner(java.awt.Graphics g)
dessine un personnage avec ses caracteristiques actuelles, et avec un rectangle qui l'entoure, si la variable correspondante a ete positionnee a vrai.

Parameters:
g - contexte graphique servant a dessiner le personnage

estDedans

public boolean estDedans()
retourne vrai si les dimensions et la position du personnage font qu'il est au moins partiellement visible de son composant graphique.


faireMouvement

public void faireMouvement(int prochaineSilhouette,
                           int prochainX,
                           int prochainY)
modifie selon les indications des parametres les caracteristiques du personnage et redessine celui-ci.

Parameters:
prochaineSilhouette - la nouyvelle silhouette a utilise
prochainX - abcisse a venir du personnage
prochainY - ordonnnee a venir du personnage

fairePas

public void fairePas()
fait faire un pas au personnage (vers la droite ou vers la gauche selon la donnee direction qui vaut DROITE ou GAUCHE.


fairePas

public void fairePas(int pas)
fait faire un pas au personnage (vers la droite ou vers la gauche selon la donnee direction qui vaut DROITE ou GAUCHE de lngueur pas.

Parameters:
pas - longueur du pas

getCouleur

public java.awt.Color getCouleur()
retourne la couleur du personnage.


getAttente

public int getAttente()
retourne le temps d'attente entre deux mouvements. Il est fixe de telle sorte que si cette attente a lieu entre deux pas, la vitesse du personnage est celle choisie.


getCyclique

public boolean getCyclique()
Lorsque le personnage, en marchant, disparait d'un cote, si la valeur de retour est a true, il reapparait de l'autre, sinon il disparait definitivement


getDirection

public int getDirection()
retourne la direction d'un personnage.

Returns:
vaudra DROITE ou GAUCHE

getRectangle

public abstract java.awt.Rectangle getRectangle()
retourne le rectangele circonscrit au personnage.


getSilhouette

public int getSilhouette()
Donne l'entier correspondant a la silhouette du personnage


setPas

public void setPas(int pas)
return la longueur du pas


getTaille

public int getTaille()
retourne la taille du personnage


getVitesse

public int getVitesse()
retourne la vitesse du personnage en pixels par seconde.


estStoppe

public boolean estStoppe()
Indique si le personnage a ete demarre et arrete definitivement


getPas

public int getPas()
Indiquela longueur d'un pas du personnage


estSupprime

public boolean estSupprime()
Indique si le personnage est supprime


estSuspendu

public boolean estSuspendu()
Indique si le thread du personnage a ete demarre puis suspendu


getX

public int getX()
retourne l'abscisse d'un point central du personnage dans la fenetre.


getY

public int getY()
retourne l'ordonnee d'un point central du personnage dans la fenetre.


setCouleur

public void setCouleur(java.awt.Color couleur)
peut modifier la couleur du personnage, qui est noir par defaut.

Parameters:
couleur - la couleur souhaitee du personnage

setCyclique

public void setCyclique(boolean valeur)
Lorsque le personnage, en marchant, disparait d'un cote, si la valeur du parametre est a true, il reapparait de l'autre, sinon il disparait definitivement


setDirection

public void setDirection(int direction)
modifie la direction du personnage.

Parameters:
direction - doit valoir DROITE ou GAUCHE.

setSilhouette

public void setSilhouette(int silhouette)
Permet de choisir la silhouette du personnage

Parameters:
silhouette - constante correspondant a la silhouette choisie

setTaille

public void setTaille(int taille)
change la taille du personnage et le redessine.

Parameters:
taille - la taille souhaitee du personnage

setTempsSaut

public void setTempsSaut(int tempsSaut)
fixe le temps pendant lequel un personnage effectue un saut


setTour

public void setTour(boolean valeur)
pour que le personnage soit ou non entoure d'un rectangle.

Parameters:
valeur - indique si le personnage doit etre ou non etre entoure d'un rectangle

setX

public void setX(int x)
permet de fixer l'abscisse d'un point central du personnage dans la fenetre.

Parameters:
x - l'abscisse souhaitee du personnage

setY

public void setY(int y)
permet de fixer l'ordonnee d'un point central du personnage dans la fenetre.

Parameters:
y - l'ordonnee souhaitee du personnage

setVitesse

public void setVitesse(int vitesse)
permet de fixer la vitesse du personnage en pixels par seconde. Par defaut, la vitesse vaut 100


dormir

public void dormir()
si on applique dormir() entre deux pas du personnage, le personnage aura la vitesse accessible par la méthode getVitesse().


dormir

public void dormir(int temps)
fait dormir le pesonnage pendant le temps indique en parametre ; autrement dit interrompt le thread dans lequel tourne cette methode pendant le temps indique.

Parameters:
temps - duree de l'arret du thread

sauter

public void sauter()
fait sauter le personnage. Les sous-classes doivent preciser la facon de dessiner le personnage si la silhouette vaut SAUTD ou SAUTG.


run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

demarrer

public void demarrer()
fait demarrer le thread


positionRepos

public void positionRepos()
Dessine le personnage dans une position au repos.


reprendre

public void reprendre()
si un personnage est en train de marcher, avec sa propre methode run (dans un thread propre), cette méthode suspend le mouvement


suspendre

public void suspendre()
si un personnage est en train de marcher, avec sa propre methode run (dans un thread propre), cette méthode suspend le mouvement


stopper

public void stopper()
interrompt définitivement le mouvement du personnage lorsque celui-ci marche automatiquement (dans un thread, avec sa methode run)


supprimer

public void supprimer()
fait stopper le personnage et le rend invisible.


touche

public boolean touche(Personnage promeneur)
indique si le rectangle du personnage intersecte le rectangle du personnage indique en paramètre.


evite

public boolean evite(Personnage promeneur)
indique si le rectangle du personnage intersecte le rectangle du personnage indique en paramètre.


estDedans

public boolean estDedans(int x,
                         int y)
Retourne true ou false selon que le point de coordonnees x et y est dans le rectangle circonscrit au personnage


dessinerP

public abstract void dessinerP(java.awt.Graphics g)
dessine le personnage selon ses attributs. Les sous-classes devront preciser en fonction de chaque silhouette, les dessins correspondant.

Parameters:
g - le contexte graphique servant a dessiner le personnage

silhouetteSuivante

protected abstract int silhouetteSuivante()