Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Langage > Autres > Programmation par agent
Programmation par agent Forum d'entraide pour la programmation orientée agents et les frameworks associés (JADE, JACK, Jadex, JAgent, Janus, Jason, MadKit, ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 21/02/2010, 19h49   #21
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
Bonjour tous le monde,
je veux savoir s'il faut définir un ordre d'exécution entre 2 containers pour qu'un agentA de conteneur 1 peut envoyé des messages à l'agentB du conteneur2 ?
un exemple pour bien comprendre:
AgentA:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<........>
public class Agent1 extends Agent {
protected void setup() {
 
	System.out.println("Mon nom est: "+getLocalName());
	addBehaviour(new OneShotBehaviour(this){
		public void action()
		{
			ACLMessage msg=new ACLMessage(ACLMessage.INFORM);
			msg.addReceiver(new AID("Agent2",AID.ISLOCALNAME));
			msg.setContent("salut");
			send(msg);
		}	
	});
<........>
//doDelete();
}
}
AgentB:
<........>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Agent2 extends Agent {
protected void setup() {
	System.out.println("Mon nom 2 est:"+getLocalName());
	addBehaviour(new behaviour1());
 
<........>
//doDelete();
}
 
public class behaviour1 extends OneShotBehaviour{
	public void action()
	{
	    //ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
	    ACLMessage messageRecu = receive();
	    if(!(messageRecu.getContent().equalsIgnoreCase("salut"))) block();
	    System.out.println(messageRecu.getContent());
	}
}
Code :
1
2
java jade.Boot -container Agent1:Agent1
java jade.Boot -container Agent2:Agent2
ou bien je dois définir un ordre d'exécution ( FSMBEhaviours ) entre les deux conteneurs ? (Comme l'exemple de Djug dans le tuto des ACLMessage)
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2010, 08h22   #22
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
oui bien sure , pour définir un ordre il faut bien utiliser un FSM behaviour.

il faut se mettre dans la tète que la programmation des agents est différentes à la programmation classique, les agents sont en générale réactifs, c-a-d il agissent selon leurs environnements extérieurs. on d'autre terme, chaque agent ne va pas exécuter son code de la ligne 0 à la ligne N-1 d'une manière séquentiel, mais il "exécute le bout de cout qui correspond à une réaction dans son environnement extérieure
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2010, 11h16   #23
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
Bonjour tous le monde,
j'ai essayé de faire un programme qui permet de ce déplacer(doMove) d'un conteneur a un autre( dans la même platform ), il m'affiche une erreur :
GRAVE: Destination Agent1 does not exist or does not support mobility
voici le code source:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.*;
import jade.core.ContainerID;
 
public class Agent2 extends Agent{
 
     public void setup(){
 
       addBehaviour(new B());
 
  }
     private class B extends SimpleBehaviour{
 
    	 private boolean _done;
    	 private int step=0;
    	 String name1="Agent1";
 
            public void action(){
 
             switch(step){
 
                     case 0:
                      System.out.println("Hello");
                      System.out.println("\n\nMoving to Agent1");
                      // ContainerID dest1=new ContainerID("Agent1",null);
                       ContainerID dest1=new ContainerID();
                       dest1.setName(name1);
                      myAgent.doMove(dest1);
                      step++;
                      break;
                  case 1:
                  _done=true;
                  System.out.println("The agent has terminated its itinirary");
 
                          }//end switch
   }//end action
            public boolean done()
            {
            	return _done;
            }
 
 
} // end setup
} // end MobileAgent
Ps: j'ai deux conteneur , agent1 et agent2
ou est le probléme ?
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2010, 11h39   #24
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
voila comment on fait migrer un agent d'un Container à un autre:


Code :
1
2
3
4
5
6
7
// on déclare la variable qui va contenir le nom du Container 
String containerName = "Container-1";
ContainerID destination = new ContainerID();
// on déclare la variable qui represente la destination
destination.setName(containerName);
// et on fait la migration
myAgent.doMove(destination);
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2010, 11h46   #25
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
Citation:
Envoyé par Djug Voir le message
Code :
1
2
3
// on déclare la variable qui va contenir le nom du Container 
String containerName = "Container-1";
;
dans mon cas j'ai nommer mon conteneur : Agent1

et puis même avec sa il m'affiche :
GRAVE: Destination Container-1 does not exist or does not support mobility

Merci Djug
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2010, 11h53   #26
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
mais est ce que tu as déja créer le container avec de faire la migration,

ce code suppose que le container existe


on peux créer un Container via la commande:

Code :
java jade.Boot -container
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2010, 19h49   #27
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
j'aimerai savoir comment je peu être sure que l'agentA a été déplacer avec sucée ? est ce que je peu faire un teste dans le conteneur ou l'agentA a été déplacer?
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2010, 08h28   #28
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
un test sur le nom du container tu permettra de savoir si ton agent est sur le bon Container ou nom
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2010, 11h27   #29
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
Voici mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.*;
import jade.core.ContainerID;
 
public class Agent1 extends Agent{
 
     public void setup(){
 
       addBehaviour(new B());
 
                                }
     private class B extends SimpleBehaviour{
 
    	 private boolean _done;
    	 private int step=0;
 
            public void action(){
 
             switch(step){
 
                     case 0:
                      System.out.println("Hello");
                      System.out.println("\n\nMoving ...");
 
                   // on déclare la variable qui va contenir le nom du Container 
                      String containerName = "Container-1";
                      ContainerID destination = new ContainerID();
                      // on déclare la variable qui represente la destination
                      destination.setName(containerName);
                      // et on fait la migration
                      myAgent.doMove(destination);
                      step++;
                      break;
                  case 1:
                  _done=true;
                  System.out.println("The agent has terminated its itinirary");
 
                          }//end switch
   }//end action
            public boolean done()
            {
            	return _done;
            }
 
 
} // end setup
} // end MobileAgent
et voici la commande pour que l'agent ce déplace au Conteneur-1:
Code :
1
2
3
 
-gui jade.Boot Agent1:Agent1
java jade.Boot -container Container-1:Agent2
-j'aimerai bien que tu m'expliques pourquoi sa ne marche pas ? peu tu m'expliquer qu'est ce que je dois faire ?
-qu'est ce que tu veux dire par :
Citation:
Envoyé par Djug Voir le message
un test sur le nom du container tu permettra de savoir si ton agent est sur le bon Container ou nom
Merci Djug
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2010, 11h49   #30
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
je viens de testé ton code, il fonctionne bien:

je crois que tu n'a pas encore compris la notion des Container et comment les agents s'exécutent

voici comment exécuter ton exemple:

compiler le code de l'agent, tu va récupérer le résultat de la compilation (les fichiers Agent1.class et Agent1$B.class)

copier ces fichier vers un dossier dont le chemin apartien à la varible classpath du systeme : par exemple tu va créer un dossier ayant comme nom C:\AgentLand et tu va ajouter ce chemin à la variable classpath du systeme (clique droit sur le poste de travaille >propriétés >avancé> variable d'environnement > double clique sur classpath puis tu rajoutes à la fin du contenu de la variable ;C:\AgentLand (remarque bien le point virgule avant le chemin du dossier)

lancer la plateforme jade via la commande:

lancer un nouveau container via la commande (il sera nommé automatiquement container-1 le prochain container sera nommé Container-2 ...)

Code :
java jade.Boot -container
lancer l'agent agent1 comme suit:

clique droit sur Main-container > Start new Agent

taper agent1 dans les champ agent name et agent class

l'agent se lancera puis se se placera vers le container container-1 puis se terminera (tous va se passer rapidement)

tu trouvera la trace de son déplacement sur le fenêtre console (fenêtre dos)
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2010, 19h16   #31
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
Merci Djug c'est bon il marche.
j'ai essayer un autre programme qui permet a un agent de ce déplacer et de revenir au conteneur principal et voici le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.*;
import jade.core.ContainerID;
 
public class Agent1 extends Agent{
 
     public void setup(){
       addBehaviour(new B());   
 }
     private class B extends SimpleBehaviour{
 
    	 private boolean _done;
    	 private int step=0;
 
            public void action(){
 
             switch(step){
 
                     case 0:
                      String containerName = "Container-1";
                      ContainerID destination = new ContainerID();
                      destination.setName(containerName);
                      myAgent.doMove(destination);
                      doWait(5000);
                      System.out.println("je me suis déplacer !!!");
                      step++;
                      break;
 
                     case 1:
                    	 String containerName2 = "Main-Container";
                         ContainerID destination2 = new ContainerID();
                         destination2.setName(containerName2);
                         myAgent.doMove(destination2);
                         doWait(5000);
                         System.out.println("je suis revenu !!!");
                         step++;
                         break;
 
                  case 2:
                  _done=true;
                  System.out.println("The agent has terminated its itinirary");
 
                          }//end switch
   }//end action
            public boolean done()
            {
            	return _done;
            }
 
 
} // end setup
} // end MobileAgent
pourquoi il marche pas ?
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2010, 19h36   #32
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
dans ce genre de situation (la mobilité) il ne faut jamais utiliser le "case of", mais il faut utiliser les FSMBehaviour (je crois que je t'ai déjà parler de ça quelque part ? n'est ce pas )


un subBehaviour pour l'aller, et un autre pour le retour (et probablement tu aura besoin d'autre état/subBehaviour entre ces deux la)


en plus, on ne place jamais des instructions juste après la méthode doMove() (il faut créer un nouveau SubBehaviour qui s'exécutera juste le subBehaviour en cours et qui va contenir ces instructions )
bon courage
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2010, 11h34   #33
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
dans le cas ou j'ai un automate :



est ce qu'il n'y a pas de risque pour le chemin a prendre dans l'etat A ?
sinon qu'est ce que je dois faire dans tel cas ?
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2010, 11h39   #34
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
de quelle risque tu parles?

peux tu l'expliquer un peu plus ?
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2010, 11h43   #35
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
je voulais dire quand je lance l'exécution , sachant que l'état initial c'est A , est ce que par défaut il vas directement a l'état B (par la transition par défaut) ou bien il vas confondre entre la transition vert B et D ?
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2010, 11h50   #36
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
la transaction par défaut est prise dans le cas ou on ne spécifié pas une valeur.

on tous cas tu peux lancer l'exécution de l'agent pour voir comment il va se comporter
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2010, 11h57   #37
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
Citation:
Envoyé par Djug Voir le message
la transaction par défaut est prise dans le cas ou on ne spécifié pas une valeur.
oui je sais tu l'as préciser dans ton Tuto , sauf que la j'ai fait un code et je ne trouve pas l'erreur alors je me suis poser la question !
Citation:
Envoyé par Djug Voir le message
on tous cas tu peux lancer l'exécution de l'agent pour voir comment il va se comporter
pour l'automate que je t'es montré , j'ai fait un Agent et il commence toujours ( d'aprés mes remarques ) par la transition par défaut
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2010, 12h01   #38
Djug
Rédacteur
 
Avatar de Djug
 
Homme
Inscription : mai 2007
Messages : 3 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Algérie

Informations forums :
Inscription : mai 2007
Messages : 3 180
Points : 19 506
Points : 19 506
juste une petite remarque,

comme c'est le cas avec ton automate, quand en utilise des automates ayant des boucles (passer par le meme état plusieurs fois, alors il faut les réinitialisé)


Citation:
String[] toBeReset : l'ensemble d'état pour lesquels on doit faire un reset() avant de les ré-exécuter parcequ'on peut pas re-éxecuter un Behaviour une autre fois avant de lui faire un reset().
__________________
Tweet more than 140 characters with long-tweets.com

Tutoriels JADE (Java Agent DEvelopment Framework)
http://djug.developpez.com

Je ne réponds pas aux questions techniques par Messages privés: les forums sont faits pour ça
Djug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2010, 12h23   #39
mimish
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 158
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 158
Points : 39
Points : 39
malgré sa j'ai pas trouvé pourquoi sa ne marche pas , pourtant avec seulement un déplacement sa marche mais avec 2 déplacements sa ne marche pas.

Voici le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import jade.core.Agent;
import jade.core.behaviours.OneShotBehaviour;
import jade.core.behaviours.FSMBehaviour;
import jade.core.AID;
import jade.core.ContainerID;
import jade.core. PlatformID;
 
public class Mimish extends Agent
{
	protected void setup(){
	FSMBehaviour fsm = new FSMBehaviour(this) 
	{
		public int onEnd() 
		{
			System.out.println("FSM behaviour terminé");
			myAgent.doDelete();
			return super.onEnd();
		}
	};
	fsm.registerFirstState (new local(),"A");
	fsm.registerState(new deplacer1(),"B");
	fsm.registerState(new deplacer2(),"C");
	fsm.registerLastState(new retour(),"D");
	fsm.registerDefaultTransition("A","B",tab);
	fsm.registerTransition("B","B",1);
	fsm.registerTransition("B","C",0);
	fsm.registerTransition("C","C",1);
	fsm.registerTransition("C","A",0);
	fsm.registerTransition("A","D",0);
	//fsm.registerTransition("A","A",1);
 
	addBehaviour(fsm);
	}
	//Inner Class
	private class local extends OneShotBehaviour
	{
 
		public void action() 
		{	
			System.out.println("je suis dans le Conteneur principal ...");
			String containerName = "Container-1";
            ContainerID destination = new ContainerID();
            // on déclare la variable qui represente la destination
            destination.setName(containerName);
            System.out.println("je vais aller au conteneur1 ...");
            // et on fait la migration
            myAgent.doMove(destination);
		}
	}
 
	private class deplacer1 extends OneShotBehaviour
	{
		public void action() 
		{
			System.out.println("je suis dans le conteneur1 ...");
			String containerName2 = "Container-2";
            ContainerID destination2 = new ContainerID();
            // on déclare la variable qui represente la destination
            destination2.setName(containerName2);
            System.out.println("je vais aller au conteneur2 ...");
            // et on fait la migration
            myAgent.doMove(destination2);
		}
	}
	private class deplacer2 extends OneShotBehaviour
	{
		public void action() 
		{
			System.out.println("je suis dans le conteneur2 ...");
			String containerName3 = "Main-Container";
            ContainerID destination3 = new ContainerID();
            // on déclare la variable qui represente la destination
            destination3.setName(containerName3);
            System.out.println("je vais retourner ...");
            // et on fait la migration
            myAgent.doMove(destination3);
		}
	}
 
	private class retour extends OneShotBehaviour
	{
		public void action() 
		{
            System.out.println("The agent has terminated its itinirary");
		}
	}
 
	//private ContainerID[] dest={};
          private String tab[]={"A"};
 
 
}
et voici son automate :
mimish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2010, 16h15   #40
Pizario
Invité de passage
 
Inscription : mars 2010
Messages : 1
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 1
Points : 1
Points : 1
Citation:
Envoyé par mimish Voir le message
malgré sa j'ai pas trouvé pourquoi sa ne marche pas , pourtant avec seulement un déplacement sa marche mais avec 2 déplacements sa ne marche pas.
Peut être parce que vous utilisez des OneShotBehaviour.
J'ai essayé de faire un agent qui se déplace vers 3 containers puis reviens au Main-Countainer, en utilisant un CyclicBehaviour (et switch case..) sans avoir à utiliser FSMBehaviour, et ça marche bien.
Pizario est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h55.


 
 
 
 
Partenaires

Hébergement Web