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:personnage [2015/10/16 09:09] 127.0.0.1 modification externe |
objets:personnage [2019/03/13 21:35] (Version actuelle) admin [Modification de l'apparence] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Personnage ====== | ====== Personnage ====== | ||
- | Un objet Personnage affiche un personnage qui peut se déplacer, lever les bras, attraper des objets [[Animation]], etc. | + | 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]]. |
- | ===== Créer un Personnage ===== | + | {{ :objets:heros.png }} |
- | * Créer un Personnage sans préciser son apparence : | + | ===== Créer un objet Personnage ===== |
- | <code tangara> | + | * Créer un objet Personnage : |
- | victor = new Personnage() | + | |
+ | <code declick> | ||
+ | unPersonnage = new Personnage() | ||
</code> | </code> | ||
- | * Créer un Personnage en précisant son apparence : | + | * Créer un objet Personnage en chargeant une image depuis un fichier : |
- | <code tangara> | + | <code declick> |
- | victor = new Personnage("chien") | + | unPersonnage = new Personnage("fichier.png") |
</code> | </code> | ||
+ | |||
+ | {{information.png}} L'image chargée est affichée directement et remplace les images prédéfinies. | ||
===== Actions ===== | ===== Actions ===== | ||
- | * Changer l'apparence d'un Personnage : | + | ==== Actions des objets Promeneur ==== |
- | <code tangara> | + | Les objets Personnage sont des objets Promeneur particuliers : ils possèdent donc déjà [[promeneur#Actions|toutes les actions des objets Promeneur]]. |
- | victor.changer("chien") | + | |
+ | ==== Actions supplémentaires ==== | ||
+ | |||
+ | * Changer la représentation du Personnage : | ||
+ | |||
+ | <code declick> | ||
+ | unPersonnage.changer("garçon") | ||
</code> | </code> | ||
- | {{ types_personnages.png }} | + | {{ :objets:types_heros.png |}} |
- | * Placer le Personnage : | + | * Arrêter le mouvement automatique du Personnage lorsqu'il se déplace : |
- | <code tangara> | + | <code declick> |
- | victor.définirPosition(300,200) | + | unPersonnage.arrêterMouvement() |
- | victor.définirPositionCentre(300,200) | + | |
</code> | </code> | ||
- | /* | + | * Démarrer le mouvement automatique du Personnage lorsqu'il se déplace : |
- | * victor.définirCoordonnéeX(300) | + | |
- | * victor.définirCoordonnéeY(200) | + | |
- | */ | + | |
- | * Faire bouger un Personnage | + | <code declick> |
+ | unPersonnage.démarrerMouvement() | ||
+ | </code> | ||
+ | |||
+ | * Définir la durée totale du mouvement de déplacement (la durée pendant laquelle toutes les images du déplacement s'affichent) : | ||
- | <code tangara> | + | <code declick> |
- | victor.avancer(50) | + | unPersonnage.définirDuréeMouvement(500) |
- | victor.reculer(50) | + | |
- | victor.monter(50) | + | |
- | victor.descendre(50) | + | |
</code> | </code> | ||
- | {{information.png}} 50 indique le nombre de pixels que le Personnage doit parcourir | + | {{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. |
- | {{ bouger_personnage.png }} | + | * Définir la durée totale de l'animation de l'objet Personnage lorsqu'il est à l'arrêt : |
- | * Arrêter un Personnage | + | <code declick> |
+ | unPromeneur.définirDuréeArrêt(1200) | ||
+ | </code> | ||
- | <code tangara> | + | {{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. |
- | victor.arrêter() | + | |
+ | * Ajouter un objet [[Décor]] au Promeneur : | ||
+ | |||
+ | <code declick> | ||
+ | unPromeneur.ajouterDécor(unDécor) | ||
</code> | </code> | ||
+ | {{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. | ||
- | * Lever les bras d'un Personnage : | + | * Donner la possibilité au Personnage d'attraper un objet (objets [[Animation]], [[Promeneur]], [[Item]] ou [[Personnage]]) : |
- | <code tangara> | + | <code declick> |
- | victor.leverBrasGauche(90) | + | unPersonnage.peutAttraper(unObjet) |
- | victor.leverBrasDroit(90) | + | |
</code> | </code> | ||
- | * Baisser les bras d'un Personnage : | + | {{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. |
- | <code tangara> | + | * Ajouter une commande à exécuter lorsque l'objet Personnage attrape un objet : |
- | victor.baisserBrasGauche(90) | + | |
- | victor.baisserBrasDroit(90) | + | <code declick> |
+ | unPersonnage.siAttrape(unObjet, "commande") | ||
</code> | </code> | ||
- | {{information.png}} 90 indique de combien de degrés le Personnage doit lever ou baisser le bras. | + | {{information.png |}} Cette commande est en fait un raccourci pour les deux commandes suivantes : |
+ | <code declick> | ||
+ | unPersonnage.peutAttraper(unObjet) | ||
+ | unPersonnage.siCollisionAvec(unObjet, "commande") | ||
+ | </code> | ||
- | {{ bras_personnages.png }} | + | ===== Modification de l'apparence ===== |
- | {{warning.png}} Attention : quand on bouge le bras gauche d'un Personnage, c'est son bras gauche à lui, donc celui qui apparaît à droite pour nous ! | + | L'apparence par défaut du Personnage peut être modifiée en ajoutant des images à l'objet. |
- | * Cacher / Montrer le personnage : | + | * Ajouter des images qui seront affichées en séquence pour tous les mouvements (images par défaut) : |
- | <code tangara> | + | <code declick> |
- | victor.cacher() | + | unPersonnage.ajouterImage("image1.png") |
- | victor.montrer() | + | unPersonnage.ajouterImage("image2.png") |
+ | ... | ||
</code> | </code> | ||
- | * Attraper un objet [[Animation]] : | + | {{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%%''. |
- | Les objets Personnage peuvent attraper un objet [[Animation]] avec leurs mains : | + | * Ajouter des images qui seront affichées en séquence lorsque le Personnage avance : |
- | <code tangara> | + | <code declick> |
- | victor.peutAttraper(uneAnimation) | + | unPersonnage.ajouterImage("image1.png", "avancer") |
+ | unPersonnage.ajouterImage("image2.png", "avancer") | ||
+ | ... | ||
</code> | </code> | ||
- | * Supprimer un personnage : | + | * Ajouter des images qui seront affichées en séquence lorsque le Personnage recule : |
- | <code tangara> | + | <code declick> |
- | victor.supprimer() | + | unPersonnage.ajouterImage("image1.png", "reculer") |
+ | unPersonnage.ajouterImage("image2.png", "reculer") | ||
+ | ... | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | * Ajouter des images qui seront affichées en séquence lorsque le Personnage est à l'arrêt : | ||
+ | |||
+ | <code declick> | ||
+ | unPersonnage.ajouterImage("image1.png", "arrêt") | ||
+ | unPersonnage.ajouterImage("image2.png", "arrêt") | ||
+ | ... | ||
+ | </code> | ||
+ |