====== Personnage ======
L'objet Personnage est un objet [[Promeneur]] particulier : il possède plusieurs apparences prédéfinies et s'anime lorsqu'il se déplace. Il est également capable de se déplacer dans des objets [[Décor]].
{{ :objets:heros.png }}
===== Créer un objet Personnage =====
* Créer un objet Personnage :
unPersonnage = new Personnage()
* Créer un objet Personnage en chargeant une image depuis un fichier :
unPersonnage = new Personnage("fichier.png")
{{information.png}} L'image chargée est affichée directement et remplace les images prédéfinies.
===== Actions =====
==== Actions des objets Promeneur ====
Les objets Personnage sont des objets Promeneur particuliers : ils possèdent donc déjà [[promeneur#Actions|toutes les actions des objets Promeneur]].
==== Actions supplémentaires ====
* Changer la représentation du Personnage :
unPersonnage.changer("garçon")
{{ :objets:types_heros.png |}}
* Arrêter le mouvement automatique du Personnage lorsqu'il se déplace :
unPersonnage.arrêterMouvement()
* Démarrer le mouvement automatique du Personnage lorsqu'il se déplace :
unPersonnage.démarrerMouvement()
* Définir la durée totale du mouvement de déplacement (la durée pendant laquelle toutes les images du déplacement s'affichent) :
unPersonnage.définirDuréeMouvement(500)
{{information.png}} la durée est en millisecondes : un délai de 1000 correspond à une seconde. La valeur par défaut dépend de la représentation choisie.
* Définir la durée totale de l'animation de l'objet Personnage lorsqu'il est à l'arrêt :
unPromeneur.définirDuréeArrêt(1200)
{{information.png}} la durée est en millisecondes : un délai de 1000 correspond à une seconde. La valeur par défaut dépend de la représentation choisie.
* Ajouter un objet [[Décor]] au Promeneur :
unPromeneur.ajouterDécor(unDécor)
{{information.png}} Lorsque le Personnage est associé à un objet Décor, il ne peut pas circuler sur les zones bloquées de ce Décor.
/*
* * Ne plus associer cet objet à des objets [[objet:bloc|Blocs]] :
*
* unPromeneur.supprimerBlocs()
*
*/
===== Gestion des événements =====
Un objet Personnage gère les mêmes événements qu'un objet [[Promeneur#gestion_des_evenements|Promeneur]]. Il peut en plus attraper des objets.
* Donner la possibilité au Personnage d'attraper un objet (objets [[Animation]], [[Promeneur]], [[Item]] ou [[Personnage]]) :
unPersonnage.peutAttraper(unObjet)
{{information.png |}} L'objet << unObjet >> doit exister et être de catégorie [[Animation]], [[Promeneur]], [[Item]] ou [[Personnage]]. Lorsque le Personnage passera sur cet objet, il le fera disparaître.
* Ajouter une commande à exécuter lorsque l'objet Personnage attrape un objet :
unPersonnage.siAttrape(unObjet, "commande")
{{information.png |}} Cette commande est en fait un raccourci pour les deux commandes suivantes :
unPersonnage.peutAttraper(unObjet)
unPersonnage.siCollisionAvec(unObjet, "commande")
===== Modification de l'apparence =====
L'apparence par défaut du Personnage peut être modifiée en ajoutant des images à l'objet.
* Ajouter des images qui seront affichées en séquence pour tous les mouvements (images par défaut) :
unPersonnage.ajouterImage("image1.png")
unPersonnage.ajouterImage("image2.png")
...
{{information.png |}} Ces images sont affichées en boucle par l'objet Personnage. Quand il se déplace, la boucle dure le temps défini par l'action ''%%définirDuréeMouvement%%''. Quand il est à l'arrêt, la boucle dure le temps défini par l'action ''%%définirDuréeArrêt%%''.
* Ajouter des images qui seront affichées en séquence lorsque le Personnage avance :
unPersonnage.ajouterImage("image1.png", "avancer")
unPersonnage.ajouterImage("image2.png", "avancer")
...
* Ajouter des images qui seront affichées en séquence lorsque le Personnage recule :
unPersonnage.ajouterImage("image1.png", "reculer")
unPersonnage.ajouterImage("image2.png", "reculer")
...
* Ajouter des images qui seront affichées en séquence lorsque le Personnage est à l'arrêt :
unPersonnage.ajouterImage("image1.png", "arrêt")
unPersonnage.ajouterImage("image2.png", "arrêt")
...