Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

 

 [Resolu] Probleme FollowCharacter

Aller en bas 
2 participants
AuteurMessage
Thebroch
Cliqueur Emérite
Cliqueur Emérite
Thebroch


Nombre de messages : 603

Age : 24

Localisation : Lorient

Date d'inscription : 23/07/2015


[Resolu] Probleme FollowCharacter  Empty
MessageSujet: [Resolu] Probleme FollowCharacter    [Resolu] Probleme FollowCharacter  EmptyJeu 14 Juin 2018 - 18:41

Bonjour, sourire

En utilisant la fonction :

Code:
Character.FollowCharacter(Character* presoasuivre, optional int dist,
                          optional int delai)

je me suis rendu compte que les "suiveurs" passent régulièrement devant le "meneur", comment faire pour qu'il reste derrière ?

_________________
Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.


Dernière édition par Thebroch le Ven 15 Juin 2018 - 0:17, édité 1 fois
Revenir en haut Aller en bas
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1791

Age : 35

Localisation : Condate

Date d'inscription : 01/08/2011


[Resolu] Probleme FollowCharacter  Empty
MessageSujet: Re: [Resolu] Probleme FollowCharacter    [Resolu] Probleme FollowCharacter  EmptyJeu 14 Juin 2018 - 22:28

Il faudrait donc donner un ordre pour que les suiveurs arrêtent de suivre le meneur au moment où ils se trouvent à une certaine distance de lui.

D'après ce que tu m'as dit par ailleurs, et sauf erreur de ma part, le personnage à suivre se déplace uniquement vers la gauche ou vers la droite, c'est à dire sur l'axe x. Si tu n'as que deux personnages suiveurs, tu peux facilement individualiser la consigne. En gros il va falloir vérifier dans quelle direction le personnage se déplace, et à quelle distance les deux autres sont de lui sur l'axe x. Dès qu'il se retrouvent à une distance donnée, ils cessent de le suivre.

Voici ma proposition, on peut sûrement faire plus simple et plus élégant (notamment il y a peut-être une manière plus simple de déterminer la direction du déplacement, et on pourrait faire plus souple pour généraliser à d'autres suiveurs potentiels), et je ne sais même pas si ça va fonctionner, mais bon c'est toujours mieux que rien (ou pas) ^^ :

Code:
bool X1;  
int DirectionDeplacement;
int egoX;
//Variables en haut du Global_Script (ou variables globales)

function repeatedly_execute (){
    
    //Déterminons d'abord la direction de déplacement du personnage
    if (player.Moving){
        if (!X1) {
            egoX = player.x; //On note la coordonnée x du joueur à un instant T1
            X1 = true; //On indique que la valeur a été relevée, afin qu'elle ne soit pas réinitiallisée à la prochaine session de jeu
        }
        else { //Si la coordonée x a été relevée à la session précédente (ou avant ça), alors on va la comparer à la coordonnée x actuelle (sachant que le personnage s'est peut-être déplacé depuis)
               if (egoX > player.x) { //Si la valeur x relevée tout à l'heure est supérieure à la coordonnée x actuelle du personnage...
                   DirectionDeplacement = 1; //Alors le personnage se déplace vers la gauche (que l'on notera arbitrairement 1)
                   X1 = false; //On réinitialise X1 pour permettre de nouvelles mesures ultérieures.
               }
               else if (egoX < player.x) { //Sinon, si la valeur x relevée tout à l'heure est inférieure à la coordonnée actuelle du personnage...
                   DirectionDeplacement = 2; //Alors le personnage se déplace vers la droite (que l'on note 2)
                   X1 = false;
               }
               //Note : Si le joueur est à la même coordonée que celle relevée à l'instant T1, c'est qu'il n'a pas eu le temps de se déplacer depuis la session précédente (selon sa vitesse), une nouvelle vérification sera faite à la session suivante pour déterminer sa direction
    }
    
    if ((perso1.Moving)||(perso2.Moving)){ //Si au moins un des deux suiveurs potentiels se déplacent actuellement ("perso1/perso2" = le nom de script des suiveurs)
        int DistanceMin = 10; //On détermine une distance minimale à laquelle ils devront se ternir du joueur
        if (DirectionDeplacement == 1){ //Si le joueur se déplace à gauche...
            if ((player.x - perso1.x) >= (0 - DistanceMin)) perso1.FollowCharacter(null); //...et si perso1 est à DistanceMin ou plus près du joueur, alors il s'arrête de le suivre
            if ((player.x - perso2.x) >= (0 - DistanceMin)) perso2.FollowCharacter(null); //idem perso2
        }        
        else if (DirectionDeplacement == 2){ //Idem si le joueur se déplace à droite
            if ((player.x - perso1.x) <= (DistanceMin)) perso1.FollowCharacter(null);
            if ((player.x - perso2.x) <= (DistanceMin)) perso2.FollowCharacter(null);
        }
    }
    
    else if (!player.Moving) DirectionDeplacement = 0; //Si le personnage ne se déplace plus, alors il ne se dirige plus ni vers la gauche, ni vers la droite
}

Note : Si ça ne fonctionne pas, essaye de remplacer les commandes persoX.FollowCharacter(null); par persoX.StopMoving();, l'inconvénient éventuel étant qu'ils s'arrêteront même s'ils étaient en train de se déplacer pour une autre raison que suivre le personnage jouable.

Note 2 : Il y a sûrement plein d'erreurs de ";" ou de parenthèses ou d'accolade ou autre boulette de ma part, si jamais tu as une erreur à la compilation que tu n'arrive pas à résoudre, n'hésite pas à me le signaler.

_________________
Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
Revenir en haut Aller en bas
Thebroch
Cliqueur Emérite
Cliqueur Emérite
Thebroch


Nombre de messages : 603

Age : 24

Localisation : Lorient

Date d'inscription : 23/07/2015


[Resolu] Probleme FollowCharacter  Empty
MessageSujet: Re: [Resolu] Probleme FollowCharacter    [Resolu] Probleme FollowCharacter  EmptyVen 15 Juin 2018 - 0:17

It's work thank you !

_________________
Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
Revenir en haut Aller en bas
Contenu sponsorisé





[Resolu] Probleme FollowCharacter  Empty
MessageSujet: Re: [Resolu] Probleme FollowCharacter    [Resolu] Probleme FollowCharacter  Empty

Revenir en haut Aller en bas
 
[Resolu] Probleme FollowCharacter
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]Probleme de gui
» [résolu]Probleme de sons
» [résolu]Pb Probleme de variable
»  [Résolu] Problème de crochets de guillemets ou de ....
» [résolu] Problème lié à une erreur d'identation {}

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: