Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 [RESOLU] MovePlayer fonctionne mal sur un personnage

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Skippy92
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 75

Age : 38

Localisation : Bagneux

Date d'inscription : 02/03/2013


MessageSujet: [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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 clin d\\\\'oeil

_________________
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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Skippy92
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 75

Age : 38

Localisation : Bagneux

Date d'inscription : 02/03/2013


MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Skippy92
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 75

Age : 38

Localisation : Bagneux

Date d'inscription : 02/03/2013


MessageSujet: 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.
sourire


Pardon du dérangement !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 COMPORTEMENT

Ah 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Skippy92
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 75

Age : 38

Localisation : Bagneux

Date d'inscription : 02/03/2013


MessageSujet: 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.
clin d\\\\'oeil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [RESOLU] MovePlayer fonctionne mal sur un personnage   Aujourd'hui à 19:17

Revenir en haut Aller en bas
 
[RESOLU] MovePlayer fonctionne mal sur un personnage
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [ RESOLU ] Faire disparaître un personnage + enlever un événement une fois fait
» [RESOLU]personnage qui ne bouge plus du tout il ne change même pas de sens
» [RESOLU] Problème avec les données du personnage.
» Fiches de personnage
» [Résolu ] afficher un personnage et insérer de la musique

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: