Outils pour utilisateurs

Outils du site


objets:animation

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
objets:animation [2015/01/23 11:44]
admin [Mouvements]
objets:animation [2019/03/13 22:16] (Version actuelle)
admin [Position et taille]
Ligne 7: Ligne 7:
   * Créer un objet Animation :   * Créer un objet Animation :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation = new Animation()+uneAnimation = new Animation()
 </​code>​ </​code>​
  
   * Créer un objet Animation en chargeant une image depuis un fichier :   * Créer un objet Animation en chargeant une image depuis un fichier :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation = new Animation("​fichier.png"​)+uneAnimation = new Animation("​fichier.png"​)
 </​code>​ </​code>​
  
Ligne 25: Ligne 25:
   * Placer l’Animation :   * Placer l’Animation :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.définirPosition(300,​200) +uneAnimation.définirPosition(300,​200) 
-  uneAnimation.définirPositionCentre(300,​200)+uneAnimation.définirPositionCentre(300,​200)
 </​code>​ </​code>​
  
 /* /*
- ​* ​ uneAnimation.définirCoordonnéeX(300); + ​*uneAnimation.définirCoordonnéeX(300) 
- ​* ​ uneAnimation.définirCoordonnéeY(200);+ ​*uneAnimation.définirCoordonnéeY(200)
  */  */
  
-/* 
- ​* ​ * Récupérer les coordonnées de l’Animation : 
- * 
- ​* ​ uneAnimation.récupérerCoordonnéeX();​ 
- ​* ​ uneAnimation.récupérerCoordonnéeY();​ 
- */ 
  
 +  * Récupérer les coordonnées de l’Animation :
 +<code declick>
 +uneAnimation.récupérerCoordonnéeX()
 +uneAnimation.récupérerCoordonnéeY()
 +</​code>​
 /* /*
  ​* ​ * Changer la taille de l’Animation :  ​* ​ * Changer la taille de l’Animation :
  *  *
- ​* ​ uneAnimation.définirHauteur(300);​ + ​*uneAnimation.définirHauteur(300);​ 
- ​* ​ uneAnimation.définirLargeur(400);​+ ​*uneAnimation.définirLargeur(400);​
  *  *
  ​* ​ * Récupérer la taille de l'​Animation :  ​* ​ * Récupérer la taille de l'​Animation :
  *  *
- ​* ​ uneAnimation.récupérerHauteur();​ + ​*uneAnimation.récupérerHauteur();​ 
- ​* ​ uneAnimation.récupérerLargeur();​+ ​*uneAnimation.récupérerLargeur();​
  */  */
  
   * Montrer / Cacher l’animation :   * Montrer / Cacher l’animation :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.montrer() +uneAnimation.montrer() 
-  uneAnimation.cacher()+uneAnimation.cacher()
 </​code>​ </​code>​
  
Ligne 65: Ligne 64:
   * Ajouter une image :   * Ajouter une image :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.ajouterImage("​fichier.png"​)+uneAnimation.ajouterImage("​fichier.png"​)
 </​code>​ </​code>​
  
   * Ajouter une image en l'​assignant à un ensemble d'​images :   * Ajouter une image en l'​assignant à un ensemble d'​images :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.ajouterImage("​fichier.png",​ "​ensemble"​)+uneAnimation.ajouterImage("​fichier.png",​ "​ensemble"​)
 </​code>​ </​code>​
  
   * Supprimer une des images :   * Supprimer une des images :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.supprimerImage("​fichier.png"​)+uneAnimation.supprimerImage("​fichier.png"​)
 </​code>​ </​code>​
  
   * Supprimer les images d'un ensemble d'​images :   * Supprimer les images d'un ensemble d'​images :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.supprimerImages("​ensemble"​)+uneAnimation.supprimerImages("​ensemble"​)
 </​code>​ </​code>​
  
Ligne 90: Ligne 89:
   * Afficher une des images :   * Afficher une des images :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.afficherImage("​fichier.png"​)+uneAnimation.afficherImage("​fichier.png"​)
 </​code>​ </​code>​
  
Ligne 98: Ligne 97:
   * Afficher l’image suivante / l'​image précédente :   * Afficher l’image suivante / l'​image précédente :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.afficherImageSuivante() +uneAnimation.afficherImageSuivante() 
-  uneAnimation.afficherImagePrécédente()+uneAnimation.afficherImagePrécédente()
 </​code>​ </​code>​
  
   * Afficher l’image suivante / l'​image précédente d'un ensemble d'​images :   * Afficher l’image suivante / l'​image précédente d'un ensemble d'​images :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.afficherImageSuivante("​ensemble"​) +uneAnimation.afficherImageSuivante("​ensemble"​) 
-  uneAnimation.afficherImagePrécédente("​ensemble"​)+uneAnimation.afficherImagePrécédente("​ensemble"​)
 </​code>​ </​code>​
  
Ligne 114: Ligne 113:
  * dernière image provoquera l'​affichage de la première image :   * dernière image provoquera l'​affichage de la première image : 
  *  *
- ​* ​ uneAnimation.bouclerImages(true)+ ​*uneAnimation.bouclerImages(true)
  *  *
  ​* ​ * Ne pas << boucler >> les images :  ​* ​ * Ne pas << boucler >> les images :
  *  *
- ​* ​ uneAnimation.bouclerImages(false)+ ​*uneAnimation.bouclerImages(false)
  */  */
  
Ligne 125: Ligne 124:
  ​* ​ * Récupérer le nom de l'​image affichée :   ​* ​ * Récupérer le nom de l'​image affichée : 
  *  *
- ​* ​ uneAnimation.récupérerNomImage()+ ​*uneAnimation.récupérerNomImage()
  *  *
  */  */
Ligne 131: Ligne 130:
   * Rendre une couleur transparente :   * Rendre une couleur transparente :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.rendreTransparent("​couleur"​)+uneAnimation.rendreTransparent("​couleur"​)
 </​code>​ </​code>​
  
-{{couleurs.png}}+{{ :objets:couleurs.png ​|}}
  
 /* /*
Ligne 141: Ligne 140:
  ​* ​ * Définir un niveau de transparence pour toutes les couleurs :  ​* ​ * Définir un niveau de transparence pour toutes les couleurs :
  *  *
- ​* ​ uneAnimation.définirTransparence(50)+ ​*uneAnimation.définirTransparence(50)
  *  *
  * {{:​objet:​information.png |}}le niveau de transparence est un chiffre compris entre 0 (visible) ​  * {{:​objet:​information.png |}}le niveau de transparence est un chiffre compris entre 0 (visible) ​
Ligne 151: Ligne 150:
   * Faire bouger l’Animation :   * Faire bouger l’Animation :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.avancer(50) +uneAnimation.avancer(50) 
-  uneAnimation.reculer(50) +uneAnimation.reculer(50) 
-  uneAnimation.monter(50) +uneAnimation.monter(50) 
-  uneAnimation.descendre(50) +uneAnimation.descendre(50) 
-  uneAnimation.allerA(0,​0)+uneAnimation.allerA(0,​0)
 </​code>​ </​code>​
  
   * Faire bouger l’Animation sans s’arrêter :    * Faire bouger l’Animation sans s’arrêter :
  
-<​code ​tangara+<​code ​declick>​ 
-  uneAnimation.avancerToujours() +uneAnimation.avancer() 
-  uneAnimation.reculerToujours() +uneAnimation.reculer() 
-  uneAnimation.monterToujours() +uneAnimation.monter() 
-  uneAnimation.descendreToujours()+uneAnimation.descendre() 
 +</​code>​ 
 + 
 +ou 
 + 
 +<code declick
 +uneAnimation.avancerToujours() 
 +uneAnimation.reculerToujours() 
 +uneAnimation.monterToujours() 
 +uneAnimation.descendreToujours()
 </​code>​ </​code>​
  
   * Arrêter l’Animation :   * Arrêter l’Animation :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.arrêter()+uneAnimation.arrêter()
 </​code>​ </​code>​
  
Ligne 177: Ligne 185:
  ​* ​ * Suspendre le mouvement de l’Animation :  ​* ​ * Suspendre le mouvement de l’Animation :
  *  *
- ​* ​ uneAnimation.suspendre();​+ ​*uneAnimation.suspendre();​
  *  *
  ​* ​ * Reprendre le mouvement de l’Animation :  ​* ​ * Reprendre le mouvement de l’Animation :
  *  *
- ​* ​ uneAnimation.reprendre();​+ ​*uneAnimation.reprendre();​
  */  */
  
   * Changer la vitesse :   * Changer la vitesse :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.définirVitesse(200)+uneAnimation.définirVitesse(100)
 </​code>​ </​code>​
  
-{{information.png}} la vitesse par défaut est de 200. Une vitesse de 0 rend l'​Animation immobile.+{{information.png}} la vitesse par défaut est de 100. Une vitesse de 0 rend l'​Animation immobile.
  
 /* /*
  ​* ​ * Suivre la souris :  ​* ​ * Suivre la souris :
  *  *
- ​* ​ uneAnimation.suivreSouris(true)+ ​*uneAnimation.suivreSouris(true)
  *  *
  ​* ​ * Ne pas suivre la souris :  ​* ​ * Ne pas suivre la souris :
  *  *
- ​* ​ uneAnimation.suivreSouris(false)+ ​*uneAnimation.suivreSouris(false)
  *  *
  ​*{{:​objet:​information.png |}}lorsqu'​une Animation suit la souris, il suffit de cliquer dessus pour la déplacer.  ​*{{:​objet:​information.png |}}lorsqu'​une Animation suit la souris, il suffit de cliquer dessus pour la déplacer.
Ligne 207: Ligne 215:
  ​* ​ * Récupérer la direction de l’objet Animation :  ​* ​ * Récupérer la direction de l’objet Animation :
  *  *
- ​* ​ uneAnimation.récupérerDirection()+ ​*uneAnimation.récupérerDirection()
  *  *
  ​*{{:​objet:​information.png |}}Cette action renvoie un texte pouvant être : << haut >>, << bas >>, << droite >>, ​  ​*{{:​objet:​information.png |}}Cette action renvoie un texte pouvant être : << haut >>, << bas >>, << droite >>, ​
Ligne 216: Ligne 224:
   * Supprimer l’objet Animation :   * Supprimer l’objet Animation :
  
-<​code ​tangara+<​code ​declick
-  uneAnimation.supprimer()+uneAnimation.supprimer()
 </​code>​ </​code>​
  
-===== Gestion des événements =====+/* 
 +=== Rotations ​===
  
-Un objet Animation peut surveiller un certain nombre d'​événements qui peuvent se produire ​+  * tourner 
 +{{ :creer:​sans_titre.gif?​nolink |}} 
 +*/
  
-  * Un **changement d'​images** 
-  * Un **clic** de l'​utilisateur sur l'​objet Animation ​ 
-  * Un **arrêt de clic** de l'​utilisateur sur l'​objet Animation ​ 
-  * Un **mouvement** de l'​objet Animation 
-  * Un **changement de direction** de l'​objet 
-  * L'​**arrêt** de l'​objet 
-  * La **collision** avec d'​autres objets Animation, [[Suiveur]] ou [[Promeneur]] 
-  * La **sortie de l'​écran** de l'​objet Animation 
  
-==== Exécuter ​des commandes ​====+===== Gestion ​des événements =====
  
-Pour chacun de ces événements,​ on peut dire à l'​objet Animation d'exécuter des commandes. Cela se fait grâce aux actions suivantes :+/* 
 + * 
 + * 
 + * Un objet Animation ​peut surveiller un certain nombre d'​événements qui peuvent se produire :  
 + * 
 + ​* ​ * Un **changement d'​images** 
 + ​* ​ * Un **clic** de l'​utilisateur sur l'​objet Animation ​ 
 + ​* ​ * Un **arrêt de clic** de l'​utilisateur sur l'​objet Animation  
 + ​* ​ * Un **mouvement** de l'​objet Animation 
 + ​* ​ * Un **changement de direction** de l'​objet 
 + ​* ​ * L'​**arrêt** de l'​objet 
 + ​* ​ * La **collision** avec d'autres objets Animation, [[Suiveur]] ou [[Promeneur]] 
 + ​* ​ * La **sortie de l'​écran** de l'​objet Animation 
 + */
  
-  uneAnimation.siChangementImage("​commande"​);​ +Un objet Animation peut surveiller ​les collisions qui se produisent avec d'autre objets ​Animation, ​[[Promeneur]] ou [[Héros]].
-  uneAnimation.siClic("​commande"​);​ +
-  uneAnimation.siArrêtClic("​commande"​);​ +
-  uneAnimation.siMouvement("​commande"​);​ +
-  uneAnimation.siChangementDirection("​commande"​);​ +
-  uneAnimation.siArrêt("​commande"​);​ +
-  uneAnimation.siCollision("​commande"​);​ +
-  uneAnimation.siHorsEcran("​commande"​);​ +
-   +
-Pour les événements de collision, on peut dire à l'objet Animation ​de n'​exécuter des commandes que s'il rencontre un objet particuliergrâce à l'​action :+
  
-  uneAnimation.siCollisionAvec(objet,​ "​commande"​);​ 
  
-On peut également fournir une liste d'​objets Animation : +==== Exécuter des commandes ====
  
-  ​uneAnimation.siCollisionAvec(liste"​commande"​);​+  ​* Pour chaque collisionon peut dire à l'​objet Animation d'​exécuter des commandes :
  
-<< liste >> est un objet [[objet:​liste|Liste]] contenant plusieurs objets Animation.+<code declick> 
 +uneAnimation.siCollision("​commande"​) 
 +</​code>​
  
-Si on fait plusieurs fois appel à une des actions ci-dessus, les commandes s'ajoutent. Par exemple ​:+  * On peut dire à l'​objet Animation de n'​exécuter ​des commandes ​que s'il rencontre un objet particulier,​ grâce à l'​action ​:
  
-  ​uneAnimation.siClic("commande1"); +<code declick>​ 
-  uneAnimation.siClic("commande2");+uneAnimation.siCollision("commande", objet
 +</​code>​ 
 +ou  
 +<code declick>​ 
 +uneAnimation.siCollisionAvec(objet, ​"commande") 
 +</​code>​
  
-L'objet Animation ​exécutera << commande1 >> puis << commande2 >> si on lui clique dessus.+  * On peut également dire à l'objet Animation ​de n'​exécuter des commandes que s'il rencontre une catégorie d'​Animations : 
  
 +<code declick>
 +uneAnimation.siCollision("​commande",​ "​catégorie"​)
 +</​code>​
 +ou 
 +<code declick>
 +uneAnimation.siCollisionAvec("​catégorie",​ "​commande"​)
 +</​code>​
  
 +  * Définir la catégorie d'une Animation : 
  
 +<code declick>
 +uneAnimation.définirCatégorie("​catégorie"​)
 +</​code>​
  
 +Si on fait plusieurs fois appel à une des actions ci-dessus, les commandes s'​ajoutent. Par exemple :
  
-==== Supprimer des commandes ====+<code declick>​ 
 +uneAnimation.siCollision("​commande1"​) 
 +uneAnimation.siCollision("​commande2"​) 
 +</​code>​
  
-Pour dire à un objet Animation ​d'​annuler l'​exécution de commandes relatives à un événement,​ on utilise l'action :+L'objet Animation ​exécutera << commande1 >> puis << commande2 >> dès qu'il détecte une collision.
  
-  ​uneAnimation.annulerCommandeEvénement("​événement"​)+  ​* Désactiver / Réactiver la détection des collisions : 
  
-<< événement >peut être égal à : +<code declick
- +uneAnimation.surveillerCollisions(false) 
-  * << changementImage >> +uneAnimation.surveillerCollisions(true
-  * << clic >> +</​code>​
-  * << arrêtClic >> +
-  * << mouvement >> +
-  * << changementDirection >> +
-  * << arrêt >> +
-  * << collision >> +
-  * << horsEcran >> +
- +
-{{:​objet:​information.png |}} si on annule les commandes associées à l'​événement << collision >>, cela supprime les commandes enregistrées avec les actions siCollision et siCollisionAvec. +
- +
-==== Afficher les commandes ==== +
- +
-Par défaut, un objet Animation affiche dans la console les commandes qu'il exécute quand un événement se produit. Ce comportement peut être modifié :  +
- +
-  * Afficher les commandes dans la console : +
- +
-  ​uneAnimation.afficherCommandes(true) +
- +
-  * Ne pas afficher les commandes dans la console :  +
- +
-  uneAnimation.afficherCommandes(false) +
- +
- +
-==== Les témoins ==== +
- +
-Dans certains cas, on peut vouloir récupérer des informations sur les événements qui se sont produits. Pour cela, on peut utiliser des objets [[Témoin]]. Il suffit pour cela de les passer en paramètre des actions d'​ajout de commande :  +
- +
-  unTémoin = new Témoin();​ +
-  ​uneAnimation.siChangementImage("​commande",​ unTémoin); +
-  ​uneAnimation.siClic("​commande",​ unTémoin);​ +
-  uneAnimation.siMouvement("​commande",​ unTémoin);​ +
-  uneAnimation.siChangementDirection("​commande",​ unTémoin);​ +
-  uneAnimation.siArrêt("​commande",​ unTémoin);​ +
-  uneAnimation.siCollision("​commande",​ unTémoin);​ +
-  uneAnimation.siCollisionAvec(objet,​ "​commande",​ unTémoin);​ +
-  uneAnimation.siCollisionAvec(liste,​ "​commande",​ unTémoin);​ +
-  uneAnimation.siHorsEcran("​commande",​ unTémoin);​ +
- +
-Pour les événements de Collision, de Changement de direction ou de Changement d'​image,​ on peut aussi utiliser des objets [[TémoinCollision]],​ [[TémoinChangementDirection]] et [[TémoinChangementImage]]. +
- +
-==== Témoins embarqués ==== +
- +
-Les objets Animation contiennent eux-mêmes un objet [[TémoinCollision]] et un [[TémoinChangementDirection]],​ ce qui permet d'​accéder à des informations sur une collision ou un changement de direction ayant eu lieu. +
- +
-  * Récupérer l'​objet ayant provoqué une collision :  +
- +
-  uneAnimation.récupérerObjetRencontré() +
- +
-  * Récupérer les coordonnées de la collision :+
  
-  uneAnimation.récupérerCoordonnéeCollisionX() +{{information.png}} par défaut, la détection des collisions est activée.
-  uneAnimation.récupérerCoordonnéeCollisionY()+
  
-  ​* Récupérer la direction précédente,​ en cas de changement de direction : +/* 
- + * 
-  uneAnimation.récupérerDirectionPrécédente() + *==== Supprimer des commandes ==== 
- + * 
-===== Zone de collision ===== + *Pour dire à un objet Animation d'​annuler l'​exécution de commandes relatives à un événement,​ on utilise l'​action : 
- + * 
-Pour détecter les collisions, un objet Animation se base sur une zone de collision : seuls les objets croisant cette zone seront détectés. Par défaut, cette zone a la même taille que l'​objet,​ mais elle peut être modifiée. +*uneAnimation.annulerCommandeEvénement("​événement"​) 
- + * 
-  * Définir une zone de collision à partir de marges : + ​*<<​ événement >> peut être égal à : 
- + * 
-  uneAnimation.définirMarges(5,​10,​20,​30);​ + ​* ​ * << changementImage >> 
- + ​* ​ * << clic >> 
-La zone de collision sera un rectangle dont le bord haut sera à 5 pixels du haut de l'​image,​ le bord bas sera à 10 pixels du bas de l'​objet,​ le bord gauche à 20 pixels de la gauche de l'​objet,​ le bord droit à 30 pixels à droite de l'​objet. + ​* ​ * << arrêtClic >> 
- + ​* ​ * << mouvement >> 
-  * Afficher les marges :  + ​* ​ * << changementDirection >> 
- + ​* ​ * << arrêt >> 
-  uneAnimation.afficherMarges(true);​ + ​* ​ * << collision >> 
- + ​* ​ * << horsEcran >> 
-  * Cacher les marges :  + * 
- + ​*{{:​objet:​information.png |}} si on annule les commandes associées à l'​événement << collision >>, cela supprime 
-  uneAnimation.afficherMarges(false);​ + *les commandes enregistrées avec les actions siCollision et siCollisionAvec. 
- + * 
-  * Définir une zone de collision rectangulaire :  + */ 
- +/* 
-  uneAnimation.définirRectangleCollision(0,​0,​100,​200) + *==== Afficher les commandes ==== 
- + * 
-La zone de collision sera formée par un rectangle dont le sommet est situé au point de coordonnées (0,0), dont la largeur est de 100 pixels, et la hauteur de 200 pixels. Les coordonnées du sommet sont exprimées dans le repère de l'​objet : (0,0) correspond au coin en haut à gauche de l'​objet. + *Par défaut, un objet Animation affiche dans la console les commandes qu'il exécute quand un événement se 
- + ​*produit. Ce comportement peut être modifié :  
-  * Définir une zone de collision elliptique :  + * 
- + ​* ​ * Afficher les commandes dans la console : 
-  uneAnimation.définirEllipseCollision(150,​250,​100,​200) + * 
- +*uneAnimation.afficherCommandes(true) 
-La zone de collision sera formée par une ellipse dont le centre est situé au point de coordonnées (150,250), dont la largeur est de 100 pixels, et la hauteur de 200 pixels. Les coordonnées du centre sont exprimées dans le repère de l'​objet : (0,0) correspond au coin en haut à gauche de l'​objet. + * 
- + ​* ​ * Ne pas afficher les commandes dans la console :  
-  * Afficher la zone de collision : + * 
- +*uneAnimation.afficherCommandes(false) 
-  uneAnimation.afficherZoneCollision(true) + */ 
- +/*==== Les témoins ==== 
-{{:​objet:​information.png |}}Cette action est équivalente à **uneAnimation.afficherMarges(true)**. + * 
- + *Dans certains cas, on peut vouloir récupérer des informations sur les événements qui se sont produits. Pour  
-  * Cacher la zone de collision : + ​*cela,​ on peut utiliser des objets [[Témoin]]. Il suffit pour cela de les passer en paramètre des actions d'​ajout  
- + *de commande :  
-  uneAnimation.afficherZoneCollision(false) + * 
- + ​* ​ unTémoin = new Témoin();​ 
-{{:​objet:​information.png |}}Cette action est équivalente à **uneAnimation.afficherMarges(false)**. +*uneAnimation.siChangementImage("​commande",​ unTémoin);​ 
-  +*uneAnimation.siClic("​commande",​ unTémoin);​ 
-  * Récupérer la liste des objets ([[Animation]],​ [[Suiveur]] ou [[Promeneur]]) présents dans la zone de collision : +*uneAnimation.siMouvement("​commande",​ unTémoin);​ 
- +*uneAnimation.siChangementDirection("​commande",​ unTémoin);​ 
-  uneAnimation.récupérerObjetsChevauchés(uneListe) +*uneAnimation.siArrêt("​commande",​ unTémoin);​ 
- +*uneAnimation.siCollision("​commande",​ unTémoin);​ 
-Cette action prend en paramètre un objet [[Liste]] qui va être rempli avec la liste des objets détectés.+*uneAnimation.siCollisionAvec(objet,​ "​commande",​ unTémoin);​ 
 +*uneAnimation.siCollisionAvec(liste,​ "​commande",​ unTémoin);​ 
 +*uneAnimation.siHorsEcran("​commande",​ unTémoin);​ 
 + * 
 + *Pour les événements de Collision, de Changement de direction ou de Changement d'​image,​ on peut aussi utiliser 
 + *des objets [[TémoinCollision]],​ [[TémoinChangementDirection]] et [[TémoinChangementImage]]. 
 + * 
 + *==== Témoins embarqués ==== 
 + * 
 + *Les objets Animation contiennent eux-mêmes un objet [[TémoinCollision]] et un [[TémoinChangementDirection]],​ ce  
 + *qui permet d'​accéder à des informations sur une collision ou un changement de direction ayant eu lieu. 
 + * 
 + ​* ​ * Récupérer l'​objet ayant provoqué une collision :  
 + * 
 +*uneAnimation.récupérerObjetRencontré() 
 + * 
 + ​* ​ * Récupérer les coordonnées de la collision : 
 + * 
 +*uneAnimation.récupérerCoordonnéeCollisionX() 
 +*uneAnimation.récupérerCoordonnéeCollisionY() 
 + * 
 + ​*  ​* Récupérer la direction précédente,​ en cas de changement de direction : 
 + * 
 +*uneAnimation.récupérerDirectionPrécédente() 
 + * 
 + *===== Zone de collision ===== 
 + * 
 + *Pour détecter les collisions, un objet Animation se base sur une zone de collision : seuls les objets croisant ​ 
 + *cette zone seront détectés. Par défaut, cette zone a la même taille que l'​objet,​ mais elle peut être modifiée. 
 + * 
 +  * Définir une zone de collision à partir de marges : 
 + * 
 +*uneAnimation.définirMarges(5,​10,​20,​30);​ 
 + * 
 + *La zone de collision sera un rectangle dont le bord haut sera à 5 pixels du haut de l'​image,​ le bord bas sera à   
 + *10 pixels du bas de l'​objet,​ le bord gauche à 20 pixels de la gauche de l'​objet,​ le bord droit à 30 pixels à   
 + *droite de l'​objet. 
 + * 
 +  * Afficher les marges :  
 + * 
 +*uneAnimation.afficherMarges(true);​ 
 + * 
 +  * Cacher les marges :  
 + * 
 +*uneAnimation.afficherMarges(false);​ 
 + * 
 +  * Définir une zone de collision rectangulaire :  
 + * 
 +*uneAnimation.définirRectangleCollision(0,​0,​100,​200) 
 + * 
 + *La zone de collision sera formée par un rectangle dont le sommet est situé au point de coordonnées (0,0), dont   
 + *la largeur est de 100 pixels, et la hauteur de 200 pixels. Les coordonnées du sommet sont exprimées dans le  
 + *repère de l'​objet : (0,0) correspond au coin en haut à gauche de l'​objet. 
 + * 
 +  * Définir une zone de collision elliptique :  
 + * 
 +*uneAnimation.définirEllipseCollision(150,​250,​100,​200) 
 + * 
 + *La zone de collision sera formée par une ellipse dont le centre est situé au point de coordonnées (150,​250), ​ 
 + *dont la largeur est de 100 pixels, et la hauteur de 200 pixels. Les coordonnées du centre sont exprimées dans le  
 + *repère de l'​objet : (0,0) correspond au coin en haut à gauche de l'​objet. 
 + * 
 +  * Afficher la zone de collision : 
 + * 
 +*uneAnimation.afficherZoneCollision(true) 
 + * 
 + *{{:​objet:​information.png |}}Cette action est équivalente à **uneAnimation.afficherMarges(true)**. 
 + * 
 +  * Cacher la zone de collision : 
 + * 
 +*uneAnimation.afficherZoneCollision(false) 
 + * 
 + *{{:​objet:​information.png |}}Cette action est équivalente à **uneAnimation.afficherMarges(false)**. 
 + * 
 + * Récupérer la liste des objets ([[Animation]],​ [[Suiveur]] ou [[Promeneur]]) présents dans la zone de  
 + *collision : 
 + * 
 +*uneAnimation.récupérerObjetsChevauchés(uneListe) 
 + * 
 + *Cette action prend en paramètre un objet [[Liste]] qui va être rempli avec la liste des objets détectés. 
 + */