Je suis actuellement en train de coder un moteur RPG dans XNA. Le moteur exécute une série de commandes de script, mais doit se bloquer jusqu'à la prochaine commande de script. Comment puis-je faire ceci?Fonctions de blocage dans XNA
Par exemple:
// interact with an NPC named in String 'Name'
String interactfunc = String.Format("{0}_Interact", Name);
System.Reflection.MethodInfo info = Factory.Script.GetType().GetMethod(interactfunc);
if (info != null) info.Invoke(Factory.Script, new object[]{this});
//this may run the following script command for NPC 'Bob'
public void Bob_Interact(NPC Bob)
{
Bob.Say("Well this worked.");
Bob.Say("Didnt it?");
}
//the say command looks like this
public void Say(String Text)
{
TalkGui gui = new TalkGui(this, Text);
Factory.Game.Guis.Add(gui);
Factory.FocusedGui = gui;
}
Maintenant, je besoin du script l'attente jusqu'à ce que la première TalkGui a été rejetée avant d'exécuter la commande suivante du script.
Quelle est la meilleure façon de faire cela? Peut-être exécuter les fonctions de script dans leur propre thread ou quelque chose?