Ejemplo n.º 1
0
 private void OnRun(object sender, RoutedEventArgs e)
 {
     //ButtonStart.IsEnabled = false;
     //ButtonStop.IsEnabled = true;
     if (engine != null)
     {
         ///engine.Stop();
         /// engine = null;
     }
     engine = new ExecutionEnvironment();
     PlayScreen.Children.Clear();
     controls.Clear();
     CurrentEnviroment.Game.Instances.Clear();
     allEnvs.Clear();
     engine.RegisterValue("$$Player", this);
     foreach (Sprite sp in CurrentEnviroment.Game.Sprites)
     {
         CurrentEnviroment.Game.Instances.Add(new Instance(sp), sp);
         ExecutionEnvironment playEnv = new ExecutionEnvironment(engine);
         allEnvs.Add(sp, playEnv);
         playEnv.RegisterValue("$$INSTANCE$$", sp);
         playEnv.Execute(sp);
         foreach (var f in sp.Handlers)
         {
             if (f is StartEventHandler)
             {
                 new Thread(() =>
                 {
                     f.Execute(playEnv);
                 }).Start();
             }
         }
     }
 }