Ci-dessous, les différences entre deux révisions de la page.
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 particulier, grâ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 collision, on 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. | ||
+ | */ |