Ceci est une ancienne révision du document !
Un objet Animation est un objet graphique très complet : il peut prendre plusieurs apparences, se déplacer, détecter des collisions, etc.
uneAnimation = new Animation()
uneAnimation = new Animation("fichier.png")
uneAnimation.définirPosition(300,200) uneAnimation.définirPositionCentre(300,200)
uneAnimation.montrer() uneAnimation.cacher()
uneAnimation.ajouterImage("fichier.png")
uneAnimation.ajouterImage("fichier.png", "ensemble")
uneAnimation.supprimerImage("fichier.png")
uneAnimation.supprimerImages("ensemble")
uneAnimation.afficherImage("fichier.png")
L’objet Animation prend automatiquement la taille de l’image qu’il affiche.
uneAnimation.afficherImageSuivante() uneAnimation.afficherImagePrécédente()
uneAnimation.afficherImageSuivante("ensemble") uneAnimation.afficherImagePrécédente("ensemble")
uneAnimation.rendreTransparent("couleur")
uneAnimation.avancer(50) uneAnimation.reculer(50) uneAnimation.monter(50) uneAnimation.descendre(50) uneAnimation.allerA(0,0)
uneAnimation.avancerToujours() uneAnimation.reculerToujours() uneAnimation.monterToujours() uneAnimation.descendreToujours()
uneAnimation.arrêter()
uneAnimation.définirVitesse(200)
la vitesse par défaut est de 200. Une vitesse de 0 rend l'Animation immobile.
uneAnimation.supprimer()
Un objet Animation peut surveiller un certain nombre d'événements qui peuvent se produire :
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 :
uneAnimation.siChangementImage("commande"); 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 :
uneAnimation.siCollisionAvec(liste, "commande");
« liste » est un objet Liste contenant plusieurs objets Animation.
Si on fait plusieurs fois appel à une des actions ci-dessus, les commandes s'ajoutent. Par exemple :
uneAnimation.siClic("commande1"); uneAnimation.siClic("commande2");
L'objet Animation exécutera « commande1 » puis « commande2 » si on lui clique dessus.
Pour dire à un objet Animation d'annuler l'exécution de commandes relatives à un événement, on utilise l'action :
uneAnimation.annulerCommandeEvénement("événement")
« événement » peut être égal à :
si on annule les commandes associées à l'événement « collision », cela supprime les commandes enregistrées avec les actions siCollision et siCollisionAvec.
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é :
uneAnimation.afficherCommandes(true)
uneAnimation.afficherCommandes(false)
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.
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.
uneAnimation.récupérerObjetRencontré()
uneAnimation.récupérerCoordonnéeCollisionX() uneAnimation.récupérerCoordonnéeCollisionY()
uneAnimation.récupérerDirectionPrécédente()
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.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.
uneAnimation.afficherMarges(true);
uneAnimation.afficherMarges(false);
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.
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.
uneAnimation.afficherZoneCollision(true)
Cette action est équivalente à uneAnimation.afficherMarges(true).
uneAnimation.afficherZoneCollision(false)
Cette action est équivalente à uneAnimation.afficherMarges(false).
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.