|
| [RESOLU] MovePlayer fonctionne mal sur un personnage | |
| | Auteur | Message |
---|
Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: [RESOLU] MovePlayer fonctionne mal sur un personnage Dim 21 Avr 2013 - 9:59 | |
| Voilà, j'ai pratiquement terminé mon test d'AGS, mais il demeure un mauvais comportement dans les déplacements que je n'arrive pas à corriger.
Quand je programme des actions sur un personnage du jeu (parler, regarder, donner), je programme la fonction "cMonPerso_AnyClick()", MonPerso étant un personnage avec lequel je veux intéragir.
Dans cette fonction, je vais bien entendu programmer : - if (UsedAction(eGA_TalkTo)) - else if(UsedAction(eGA_LookAt)) - else if (UsedAction(eGA_GiveTo)) - else if(UsedAction(eGA_UseInv)) - else
Et tout au début, je demande à mon perso de se rendre à un endroit précis de la room : Par exemple : MovePlayer(630, 230); player.FaceDirection(eDir_Right);
Le problème que j'ai est que tout fonctionne bien, excepté que mon perso se rend d'abord sur la position du personnage avant de se rendre à la position désirée. Si MonPerso est à la position 700,230, même si je lui dis d'aller à la position 630,230, il va d'abord en 700,230 puis en 630,230.
Ca ne me le fait que lorsque j'intéragis avec un personnage. Je n'ai pas de problème de ce genre avec les hotspots et les objets.
Est-ce un problème que vous avez déjà rencontré ?
Dernière édition par Skippy92 le Dim 21 Avr 2013 - 21:15, édité 1 fois |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [RESOLU] MovePlayer fonctionne mal sur un personnage Dim 21 Avr 2013 - 12:52 | |
| Je ne suis pas certain de bien comprendre. Qu'entends-tu par "il va d'abord en 700,230", si le personnage s'y trouve déjà ? Tu veux dire qu'il se retourne en direction du personnage avant de se déplacer vers lui, alors que tu voudrais qu'il se déplace jusqu'au personnage puis qu'il se retourne en sa direction ? Comment as-tu défini ta fonction MovePlayer ? Est-ce une commande bloquant l'exécution du script ? Car si elle ne le bloque pas, il est normal que la commande suivante ( FaceDirection) soit exécutée avant que le joueur n'ait atteint l'autre personnage. Bref, j'ai besoin que tu me renseignes davantage sur ton problème pour t'aider _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] MovePlayer fonctionne mal sur un personnage Dim 21 Avr 2013 - 18:33 | |
| Imaginons que mon personnage joueur, Bernard, soit en 100,100 et que mon personnage Vendeur est en 700,230. 700 et 230 correspondent à StartX et StartY du perso, mais j'ai constaté que le StartX est au centre de l'image du personnage. Pour éviter que Bernard ne s'approche trop près de Vendeur, je lui dit d'aller non pas en 700,230 mais en 630,230. J'ai le code suivant : - Code:
-
function cVendeur_AnyClick() { if (MovePlayer(630, 230)) { player.FaceDirection(eDir_Left);
// TALK TO if (UsedAction(eGA_TalkTo)) { dDialog2.Start(); } // LOOK AT else if(UsedAction(eGA_LookAt)) { player.Say("C'est un vendeur de cigares."); } else Unhandled(); } } Mais, quand je fais une action sur Vendeur, Bernard va d'abord en 700,230 pour ensuite revenir sur ses pas en 630,230 comme demandé. Au pire, vous le verrez de visu quand je mettrais mon test de jeu en ligne. |
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] MovePlayer fonctionne mal sur un personnage Dim 21 Avr 2013 - 18:42 | |
| Au temps pour moi, je pense avoir trouvé. Dans le jeu de démo, ça marche, mais ce jeu est en 320x240, soit 2 fois plus petit. J'ai remarqué que le personnage cBman est en position 33,125. Et que Roger, cEgo, s'arrête en 68,125 pour agir avec lui. J'ai trouvé une fonction "NPCGoToCharacter" dans le guiscript.asc. Et dedans, on trouve : int defaultxoffset=35; Je suis passé à 70, et maintenant ça marche. Pardon du dérangement ! |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [RESOLU] MovePlayer fonctionne mal sur un personnage Dim 21 Avr 2013 - 18:51 | |
| Ah bah tant mieux, c'est bon à savoir qu'il y a cette drôle d'option dans le script. Tu utilises le modèle MI c'est ça ? J'allais poster une réponse qui du coup est à côté de la plaque, mais je la poste quand même dans le cas où quelqu'un qui a un problème superficiellement similaire mais profondément différent viendrait ici pour trouver une solution : AUTRES CAUSES POSSIBLES POUR CE GENRE DE COMPORTEMENTAh je vois mieux : il se déplace à des coordonnées que tu ne lui donnes même pas. Je vois deux sources potentielles à ton problème : soit il y a une option comme Walk to Hostpot activée qui fait que ton personnage se déplace jusqu'à la zone interactive avant de déclencher le code associé ; soit tu as une fonction on_mouse_click dans le script global (ou ailleurs) qui se charge de déplacer le personnage jusqu'au point où tu cliques. Si c'est l'option générale, tu la désactives tout simplement ; si c'est une fonction globale, tu peux aller lorgner du côté de ClaimEvent. Si c'est autre chose, je ne vois pas pour le moment, désolé. _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
| | | Skippy92 Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Age : 46
Localisation : Bagneux
Date d'inscription : 02/03/2013
| Sujet: Re: [RESOLU] MovePlayer fonctionne mal sur un personnage Dim 21 Avr 2013 - 20:32 | |
| C'est ça, j'utilise le modèle "9-verb MI-style". Et il y a les fonctions NPCGoToCharacter et GoToCharacter qui font que le personnage joueur s'arrête à une certaine distance du personne avec lequel intéragir, pour éviter la superposition. C'est toujours bon à savoir. |
| | | Contenu sponsorisé
| Sujet: Re: [RESOLU] MovePlayer fonctionne mal sur un personnage | |
| |
| | | | [RESOLU] MovePlayer fonctionne mal sur un personnage | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |